sidekiq 6.0.0 → 6.1.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of sidekiq might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.circleci/config.yml +13 -3
- data/6.0-Upgrade.md +3 -1
- data/Changes.md +149 -1
- data/Ent-Changes.md +21 -2
- data/Gemfile +2 -2
- data/Gemfile.lock +121 -109
- data/Pro-Changes.md +24 -2
- data/README.md +4 -5
- data/bin/sidekiq +26 -2
- data/bin/sidekiqload +8 -4
- data/bin/sidekiqmon +4 -5
- data/lib/generators/sidekiq/worker_generator.rb +11 -1
- data/lib/sidekiq/api.rb +126 -93
- data/lib/sidekiq/cli.rb +42 -21
- data/lib/sidekiq/client.rb +33 -12
- data/lib/sidekiq/extensions/active_record.rb +3 -2
- data/lib/sidekiq/extensions/class_methods.rb +5 -4
- data/lib/sidekiq/fetch.rb +26 -24
- data/lib/sidekiq/job_logger.rb +12 -4
- data/lib/sidekiq/job_retry.rb +23 -10
- data/lib/sidekiq/launcher.rb +35 -10
- data/lib/sidekiq/logger.rb +108 -12
- data/lib/sidekiq/manager.rb +3 -3
- data/lib/sidekiq/middleware/chain.rb +11 -2
- data/lib/sidekiq/monitor.rb +3 -18
- data/lib/sidekiq/paginator.rb +7 -2
- data/lib/sidekiq/processor.rb +22 -24
- data/lib/sidekiq/rails.rb +16 -18
- data/lib/sidekiq/redis_connection.rb +21 -13
- data/lib/sidekiq/scheduled.rb +13 -12
- data/lib/sidekiq/sd_notify.rb +149 -0
- data/lib/sidekiq/systemd.rb +24 -0
- data/lib/sidekiq/testing.rb +13 -1
- data/lib/sidekiq/util.rb +0 -2
- data/lib/sidekiq/version.rb +1 -1
- data/lib/sidekiq/web/application.rb +22 -21
- data/lib/sidekiq/web/csrf_protection.rb +153 -0
- data/lib/sidekiq/web/helpers.rb +25 -16
- data/lib/sidekiq/web/router.rb +2 -4
- data/lib/sidekiq/web.rb +16 -8
- data/lib/sidekiq/worker.rb +8 -11
- data/lib/sidekiq.rb +21 -7
- data/sidekiq.gemspec +3 -4
- data/web/assets/javascripts/application.js +24 -21
- data/web/assets/javascripts/dashboard.js +2 -2
- data/web/assets/stylesheets/application-dark.css +133 -0
- data/web/assets/stylesheets/application.css +14 -0
- data/web/locales/de.yml +14 -2
- data/web/locales/en.yml +2 -0
- data/web/locales/fr.yml +2 -2
- data/web/locales/ja.yml +2 -0
- data/web/locales/lt.yml +83 -0
- data/web/locales/pl.yml +4 -4
- data/web/locales/vi.yml +83 -0
- data/web/views/_job_info.erb +2 -1
- data/web/views/busy.erb +4 -1
- data/web/views/dead.erb +2 -2
- data/web/views/layout.erb +1 -0
- data/web/views/morgue.erb +4 -1
- data/web/views/queue.erb +10 -1
- data/web/views/queues.erb +8 -0
- data/web/views/retries.erb +4 -1
- data/web/views/retry.erb +2 -2
- data/web/views/scheduled.erb +4 -1
- metadata +16 -24
data/lib/sidekiq.rb
CHANGED
@@ -20,6 +20,7 @@ module Sidekiq
|
|
20
20
|
labels: [],
|
21
21
|
concurrency: 10,
|
22
22
|
require: ".",
|
23
|
+
strict: true,
|
23
24
|
environment: nil,
|
24
25
|
timeout: 25,
|
25
26
|
poll_interval_average: nil,
|
@@ -30,16 +31,16 @@ module Sidekiq
|
|
30
31
|
startup: [],
|
31
32
|
quiet: [],
|
32
33
|
shutdown: [],
|
33
|
-
heartbeat: []
|
34
|
+
heartbeat: []
|
34
35
|
},
|
35
36
|
dead_max_jobs: 10_000,
|
36
37
|
dead_timeout_in_seconds: 180 * 24 * 60 * 60, # 6 months
|
37
|
-
reloader: proc { |&block| block.call }
|
38
|
+
reloader: proc { |&block| block.call }
|
38
39
|
}
|
39
40
|
|
40
41
|
DEFAULT_WORKER_OPTIONS = {
|
41
42
|
"retry" => true,
|
42
|
-
"queue" => "default"
|
43
|
+
"queue" => "default"
|
43
44
|
}
|
44
45
|
|
45
46
|
FAKE_INFO = {
|
@@ -47,7 +48,7 @@ module Sidekiq
|
|
47
48
|
"uptime_in_days" => "9999",
|
48
49
|
"connected_clients" => "9999",
|
49
50
|
"used_memory_human" => "9P",
|
50
|
-
"used_memory_peak_human" => "9P"
|
51
|
+
"used_memory_peak_human" => "9P"
|
51
52
|
}
|
52
53
|
|
53
54
|
def self.❨╯°□°❩╯︵┻━┻
|
@@ -95,10 +96,11 @@ module Sidekiq
|
|
95
96
|
retryable = true
|
96
97
|
begin
|
97
98
|
yield conn
|
98
|
-
rescue Redis::
|
99
|
+
rescue Redis::BaseError => ex
|
99
100
|
# 2550 Failover can cause the server to become a replica, need
|
100
101
|
# to disconnect and reopen the socket to get back to the primary.
|
101
|
-
if
|
102
|
+
# 4495 Use the same logic if we have a "Not enough replicas" error from the primary
|
103
|
+
if retryable && ex.message =~ /READONLY|NOREPLICAS/
|
102
104
|
conn.disconnect!
|
103
105
|
retryable = false
|
104
106
|
retry
|
@@ -154,7 +156,7 @@ module Sidekiq
|
|
154
156
|
|
155
157
|
def self.default_worker_options=(hash)
|
156
158
|
# stringify
|
157
|
-
@default_worker_options = default_worker_options.merge(
|
159
|
+
@default_worker_options = default_worker_options.merge(hash.transform_keys(&:to_s))
|
158
160
|
end
|
159
161
|
|
160
162
|
def self.default_worker_options
|
@@ -192,6 +194,7 @@ module Sidekiq
|
|
192
194
|
|
193
195
|
def self.log_formatter=(log_formatter)
|
194
196
|
@log_formatter = log_formatter
|
197
|
+
logger.formatter = log_formatter
|
195
198
|
end
|
196
199
|
|
197
200
|
def self.logger
|
@@ -199,9 +202,20 @@ module Sidekiq
|
|
199
202
|
end
|
200
203
|
|
201
204
|
def self.logger=(logger)
|
205
|
+
if logger.nil?
|
206
|
+
self.logger.level = Logger::FATAL
|
207
|
+
return self.logger
|
208
|
+
end
|
209
|
+
|
210
|
+
logger.extend(Sidekiq::LoggingUtils)
|
211
|
+
|
202
212
|
@logger = logger
|
203
213
|
end
|
204
214
|
|
215
|
+
def self.pro?
|
216
|
+
defined?(Sidekiq::Pro)
|
217
|
+
end
|
218
|
+
|
205
219
|
# How frequently Redis should be checked by a random Sidekiq process for
|
206
220
|
# scheduled and retriable jobs. Each individual process will take turns by
|
207
221
|
# waiting some multiple of this value.
|
data/sidekiq.gemspec
CHANGED
@@ -8,14 +8,13 @@ Gem::Specification.new do |gem|
|
|
8
8
|
gem.homepage = "http://sidekiq.org"
|
9
9
|
gem.license = "LGPL-3.0"
|
10
10
|
|
11
|
-
gem.executables = ["sidekiq"]
|
11
|
+
gem.executables = ["sidekiq", "sidekiqmon"]
|
12
12
|
gem.files = `git ls-files | grep -Ev '^(test|myapp|examples)'`.split("\n")
|
13
13
|
gem.name = "sidekiq"
|
14
14
|
gem.version = Sidekiq::VERSION
|
15
15
|
gem.required_ruby_version = ">= 2.5.0"
|
16
16
|
|
17
|
-
gem.add_dependency "redis", ">= 4.
|
17
|
+
gem.add_dependency "redis", ">= 4.2.0"
|
18
18
|
gem.add_dependency "connection_pool", ">= 2.2.2"
|
19
|
-
gem.add_dependency "rack", "
|
20
|
-
gem.add_dependency "rack-protection", ">= 2.0.0"
|
19
|
+
gem.add_dependency "rack", "~> 2.0"
|
21
20
|
end
|