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 +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +1 -1
- data/lib/process_bot/capistrano/sidekiq.rake +7 -10
- data/lib/process_bot/capistrano/sidekiq_helpers.rb +6 -0
- data/lib/process_bot/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e0a67de01a927a07fc17e06814e4752b2da954eca493143f7850b18e5a5b1aa9
|
|
4
|
+
data.tar.gz: f0fc56095299f93a43a45549c9399118d4ddf7e5e112ce701baac8b86e1b3756
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5cad374bb6dacaa0c2a87e7b1f0b1a7add878c8466a6d54de5836ed285f0ec7a4fde8f2a9dcac94ebc8432992dc92632953f587ab992883c2b3b5aadcb1497ee
|
|
7
|
+
data.tar.gz: d597eaac6ecbaa04c6926018f3bf3872438c7138f2a64bdb52691bf2b1183c0854f34a05f5681c576a648fd69c21c90ea6395bf30c7700868dd9fecfcb332158
|
data/Gemfile.lock
CHANGED
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,
|
|
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 (
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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)
|
data/lib/process_bot/version.rb
CHANGED