process_bot 0.1.16 → 0.1.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7d79a43f8a6bdf408f637e66fff579115ab45f57f0c8c0314d98c1e84a8f4430
4
- data.tar.gz: 716c9b8e69f54f1dc60a322d1ddad7f4336b464e338964ffa9f736d7cac11477
3
+ metadata.gz: e0a67de01a927a07fc17e06814e4752b2da954eca493143f7850b18e5a5b1aa9
4
+ data.tar.gz: f0fc56095299f93a43a45549c9399118d4ddf7e5e112ce701baac8b86e1b3756
5
5
  SHA512:
6
- metadata.gz: 2739cfa0148b5085b45f0ca273d583f609413346e7d7ebed3693fb3715ebeb2ad4c14475b212c82a86e3bc1081585f2edc606c0d2f7ae2159a61722cfc1bc0c1
7
- data.tar.gz: f59153145d7e36da05d9d9dc98d6e7d2f0a3b8f03fcfb51606b800453685f2fcb45e07eca46395cbdeac095f041749eb2064b9f98bc6dfe1c5e7d3fad5611e35
6
+ metadata.gz: 5cad374bb6dacaa0c2a87e7b1f0b1a7add878c8466a6d54de5836ed285f0ec7a4fde8f2a9dcac94ebc8432992dc92632953f587ab992883c2b3b5aadcb1497ee
7
+ data.tar.gz: d597eaac6ecbaa04c6926018f3bf3872438c7138f2a64bdb52691bf2b1183c0854f34a05f5681c576a648fd69c21c90ea6395bf30c7700868dd9fecfcb332158
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- process_bot (0.1.16)
4
+ process_bot (0.1.17)
5
5
  knjrbfw (>= 0.0.116)
6
6
  pry
7
7
  rake
data/README.md CHANGED
@@ -44,7 +44,7 @@ ProcessBot provides these Sidekiq tasks:
44
44
  - `process_bot:sidekiq:stop`
45
45
  - `process_bot:sidekiq:graceful` (stops fetching new jobs and waits for running jobs by default)
46
46
  - `process_bot:sidekiq:graceful_no_wait` (stops fetching new jobs and returns immediately)
47
- - `process_bot:sidekiq:ensure_running` (starts missing processes, ignoring ones in graceful shutdown)
47
+ - `process_bot:sidekiq:ensure_running` (starts missing processes, including replacements for graceful shutdowns)
48
48
  - `process_bot:sidekiq:restart`
49
49
 
50
50
  You can also skip waiting for graceful completion:
@@ -70,7 +70,7 @@ namespace :process_bot do
70
70
  end
71
71
  end
72
72
 
73
- desc "Ensure the configured number of Sidekiq ProcessBots are running (excluding graceful shutdowns)"
73
+ desc "Ensure the configured number of Sidekiq ProcessBots are running (starts replacements for graceful shutdowns)"
74
74
  task :ensure_running do
75
75
  on roles fetch(:sidekiq_roles) do |role|
76
76
  git_plugin.switch_user(role) do
@@ -91,10 +91,12 @@ namespace :process_bot do
91
91
  git_plugin.process_bot_sidekiq_index(process_bot_data)
92
92
  end
93
93
 
94
- puts "ProcessBot Sidekiq in graceful shutdown: #{graceful_indexes.join(", ")}" if graceful_indexes.any?
94
+ if graceful_indexes.any?
95
+ puts "ProcessBot Sidekiq in graceful shutdown: #{graceful_indexes.join(", ")}"
96
+ puts "Starting replacements for graceful shutdowns to reach #{desired_processes} running processes"
97
+ end
95
98
 
96
- desired_indexes = (0...desired_processes).to_a
97
- missing_indexes = desired_indexes - active_indexes - graceful_indexes
99
+ missing_indexes = git_plugin.missing_sidekiq_indexes(desired_processes, active_indexes)
98
100
  missing_count = desired_processes - active_indexes.count
99
101
 
100
102
  if missing_count.negative?
@@ -107,14 +109,9 @@ namespace :process_bot do
107
109
  puts "Starting Sidekiq with ProcessBot #{idx} (missing)"
108
110
  git_plugin.start_sidekiq(idx)
109
111
  end
110
- else
112
+ elsif missing_count.zero?
111
113
  puts "All ProcessBot Sidekiq processes are running (#{active_indexes.count}/#{desired_processes})"
112
114
  end
113
-
114
- return unless missing_count > missing_indexes.length
115
-
116
- puts "Skipped starting #{missing_count - missing_indexes.length} processes because " \
117
- "they are still in graceful shutdown"
118
115
  end
119
116
  end
120
117
  end
@@ -118,6 +118,12 @@ module ProcessBot::Capistrano::SidekiqHelpers # rubocop:disable Metrics/ModuleLe
118
118
  false
119
119
  end
120
120
 
121
+ def missing_sidekiq_indexes(desired_processes, active_indexes)
122
+ desired = desired_processes.to_i
123
+ desired_indexes = (0...desired).to_a
124
+ desired_indexes - active_indexes
125
+ end
126
+
121
127
  def sidekiq_user(role = nil)
122
128
  if role.nil?
123
129
  fetch(:sidekiq_user)
@@ -1,3 +1,3 @@
1
1
  module ProcessBot
2
- VERSION = "0.1.16".freeze
2
+ VERSION = "0.1.17".freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: process_bot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.16
4
+ version: 0.1.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - kaspernj