sidekiq 5.0.0 → 6.0.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.

Files changed (79) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +61 -0
  3. data/.github/issue_template.md +3 -1
  4. data/.gitignore +1 -1
  5. data/.standard.yml +20 -0
  6. data/6.0-Upgrade.md +70 -0
  7. data/COMM-LICENSE +12 -10
  8. data/Changes.md +169 -1
  9. data/Ent-2.0-Upgrade.md +37 -0
  10. data/Ent-Changes.md +76 -0
  11. data/Gemfile +16 -21
  12. data/Gemfile.lock +196 -0
  13. data/LICENSE +1 -1
  14. data/Pro-4.0-Upgrade.md +35 -0
  15. data/Pro-5.0-Upgrade.md +25 -0
  16. data/Pro-Changes.md +137 -1
  17. data/README.md +18 -30
  18. data/Rakefile +6 -8
  19. data/bin/sidekiqload +28 -24
  20. data/bin/sidekiqmon +9 -0
  21. data/lib/generators/sidekiq/templates/worker_spec.rb.erb +1 -1
  22. data/lib/generators/sidekiq/templates/worker_test.rb.erb +1 -1
  23. data/lib/generators/sidekiq/worker_generator.rb +12 -14
  24. data/lib/sidekiq.rb +69 -49
  25. data/lib/sidekiq/api.rb +216 -160
  26. data/lib/sidekiq/cli.rb +174 -207
  27. data/lib/sidekiq/client.rb +55 -51
  28. data/lib/sidekiq/delay.rb +24 -4
  29. data/lib/sidekiq/exception_handler.rb +12 -16
  30. data/lib/sidekiq/extensions/action_mailer.rb +10 -20
  31. data/lib/sidekiq/extensions/active_record.rb +9 -7
  32. data/lib/sidekiq/extensions/class_methods.rb +9 -7
  33. data/lib/sidekiq/extensions/generic_proxy.rb +4 -4
  34. data/lib/sidekiq/fetch.rb +5 -6
  35. data/lib/sidekiq/job_logger.rb +42 -14
  36. data/lib/sidekiq/job_retry.rb +71 -57
  37. data/lib/sidekiq/launcher.rb +74 -60
  38. data/lib/sidekiq/logger.rb +69 -0
  39. data/lib/sidekiq/manager.rb +12 -15
  40. data/lib/sidekiq/middleware/chain.rb +3 -2
  41. data/lib/sidekiq/middleware/i18n.rb +5 -7
  42. data/lib/sidekiq/monitor.rb +148 -0
  43. data/lib/sidekiq/paginator.rb +11 -12
  44. data/lib/sidekiq/processor.rb +126 -82
  45. data/lib/sidekiq/rails.rb +24 -32
  46. data/lib/sidekiq/redis_connection.rb +46 -14
  47. data/lib/sidekiq/scheduled.rb +50 -25
  48. data/lib/sidekiq/testing.rb +35 -27
  49. data/lib/sidekiq/testing/inline.rb +2 -1
  50. data/lib/sidekiq/util.rb +20 -14
  51. data/lib/sidekiq/version.rb +2 -1
  52. data/lib/sidekiq/web.rb +45 -53
  53. data/lib/sidekiq/web/action.rb +14 -10
  54. data/lib/sidekiq/web/application.rb +83 -58
  55. data/lib/sidekiq/web/helpers.rb +105 -67
  56. data/lib/sidekiq/web/router.rb +18 -15
  57. data/lib/sidekiq/worker.rb +144 -41
  58. data/sidekiq.gemspec +16 -27
  59. data/web/assets/javascripts/application.js +0 -0
  60. data/web/assets/javascripts/dashboard.js +21 -23
  61. data/web/assets/stylesheets/application.css +35 -2
  62. data/web/assets/stylesheets/bootstrap.css +2 -2
  63. data/web/locales/ar.yml +1 -0
  64. data/web/locales/en.yml +2 -0
  65. data/web/locales/es.yml +4 -3
  66. data/web/locales/ja.yml +7 -4
  67. data/web/views/_footer.erb +4 -1
  68. data/web/views/_nav.erb +3 -17
  69. data/web/views/busy.erb +5 -1
  70. data/web/views/layout.erb +1 -1
  71. data/web/views/queue.erb +1 -0
  72. data/web/views/queues.erb +2 -0
  73. data/web/views/retries.erb +4 -0
  74. metadata +25 -171
  75. data/.travis.yml +0 -18
  76. data/bin/sidekiqctl +0 -99
  77. data/lib/sidekiq/core_ext.rb +0 -119
  78. data/lib/sidekiq/logging.rb +0 -106
  79. data/lib/sidekiq/middleware/server/active_record.rb +0 -22
@@ -4,6 +4,82 @@
4
4
 
5
5
  Please see [http://sidekiq.org/](http://sidekiq.org/) for more details and how to buy.
6
6
 
7
+ 2.0.0
8
+ -------------
9
+
10
+ - Except for the [newly required credentials](/mperham/sidekiq/issue/4232), Sidekiq Enterprise 2.0 does
11
+ not have any significant migration steps.
12
+ - Sidekiq Enterprise must now be started with valid license credentials. [#4232]
13
+ - Call `GC.compact` if possible in sidekiqswarm before forking [#4181]
14
+ - Changes for forward-compatibility with Sidekiq 6.0.
15
+ - Add death handler to remove any lingering unique locks [#4162]
16
+ - Backoff can now be customized per rate limiter [#4219]
17
+ - Code formatting changes for StandardRB
18
+
19
+ 1.8.1
20
+ -------------
21
+
22
+ - Fix excessive lock reclaims with concurrent limiter [#4105]
23
+ - Add ES translations, see issues [#3949](https://github.com/mperham/sidekiq/issues/3949) and [#3951](https://github.com/mperham/sidekiq/issues/3951) to add your own language.
24
+
25
+ 1.8.0
26
+ -------------
27
+
28
+ - Require Sidekiq Pro 4.0 and Sidekiq 5.2.
29
+ - Refactor historical metrics API to use revamped Statsd support in Sidekiq Pro
30
+ - Add a gauge to historical metrics for `default` queue latency [#4079]
31
+
32
+ 1.7.2
33
+ -------------
34
+
35
+ - Add PT and JA translations
36
+ - Fix elapsed time calculations to use monotonic clock [#4000, sj26]
37
+ - Fix edge case where flapping leadership would cause old periodic
38
+ jobs to be fired once [#3974]
39
+ - Add support for sidekiqswarm memory monitoring on FreeBSD [#3884]
40
+
41
+ 1.7.1
42
+ -------------
43
+
44
+ - Fix Lua error in concurrent rate limiter under heavy contention
45
+ - Remove superfluous `freeze` calls on Strings [#3759]
46
+
47
+ 1.7.0
48
+ -------------
49
+
50
+ - **NEW FEATURE** [Rolling restarts](https://github.com/mperham/sidekiq/wiki/Ent-Rolling-Restarts) - great for long running jobs!
51
+ - Adjust middleware so unique jobs that don't push aren't registered in a Batch [#3662]
52
+ - Add new unlimited rate limiter, useful for testing [#3743]
53
+ ```ruby
54
+ limiter = Sidekiq::Limiter.unlimited(...any args...)
55
+ ```
56
+
57
+ 1.6.1
58
+ -------------
59
+
60
+ - Fix crash in rate limiter middleware when used with custom exceptions [#3604]
61
+
62
+ 1.6.0
63
+ -------------
64
+
65
+ - Show process "leader" tag on Busy page, requires Sidekiq 5.0.2 [#2867]
66
+ - Capture custom metrics with the `save_history` API. [#2815]
67
+ - Implement new `unique_until: 'start'` policy option. [#3471]
68
+
69
+ 1.5.4
70
+ -------------
71
+
72
+ - Fix broken Cron page in Web UI [#3458]
73
+
74
+ 1.5.3
75
+ -------------
76
+
77
+ - Remove dependency on the algorithms gem [#3446]
78
+ - Allow user to specify max memory in megabytes with SIDEKIQ\_MAXMEM\_MB [#3451]
79
+ - Implement logic to detect app startup failure, sidekiqswarm will exit
80
+ rather than try to restart the app forever [#3450]
81
+ - Another fix for doubly-encrypted arguments [#3368]
82
+
7
83
  1.5.2
8
84
  -------------
9
85
 
data/Gemfile CHANGED
@@ -1,29 +1,24 @@
1
- source 'https://rubygems.org'
1
+ source "https://rubygems.org"
2
+
2
3
  gemspec
3
4
 
4
- gem 'rails', '>= 5.0.1'
5
- gem "hiredis"
6
- gem 'simplecov'
7
- gem 'minitest'
8
- #gem 'minitest-utils'
9
- gem 'toxiproxy'
5
+ gem "rake"
6
+ gem "redis-namespace"
7
+ gem "rails"
8
+ gem "sqlite3", platforms: :ruby
9
+ gem "activerecord-jdbcsqlite3-adapter", platforms: :jruby
10
10
 
11
- platforms :rbx do
12
- gem 'rubysl', '~> 2.0' # if using anything in the ruby standard library
13
- gem 'psych' # if using yaml
14
- gem 'rubinius-developer_tools' # if using any of coverage, debugger, profiler
11
+ group :test do
12
+ gem "minitest"
13
+ gem "simplecov"
15
14
  end
16
15
 
17
- platforms :ruby do
18
- gem 'sqlite3'
16
+ group :development, :test do
17
+ gem "pry-byebug", platforms: :mri
18
+ gem "standard"
19
19
  end
20
20
 
21
- platforms :mri do
22
- gem 'pry-byebug'
23
- gem 'ruby-prof'
21
+ group :load_test do
22
+ gem "hiredis"
23
+ gem "toxiproxy"
24
24
  end
25
-
26
- #platforms :jruby do
27
- #gem 'jruby-openssl'
28
- #gem 'activerecord-jdbcsqlite3-adapter'
29
- #end
@@ -0,0 +1,196 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ sidekiq (6.0.0)
5
+ connection_pool (>= 2.2.2)
6
+ rack (>= 2.0.0)
7
+ rack-protection (>= 2.0.0)
8
+ redis (>= 4.1.0)
9
+
10
+ GEM
11
+ remote: https://rubygems.org/
12
+ specs:
13
+ actioncable (6.0.0)
14
+ actionpack (= 6.0.0)
15
+ nio4r (~> 2.0)
16
+ websocket-driver (>= 0.6.1)
17
+ actionmailbox (6.0.0)
18
+ actionpack (= 6.0.0)
19
+ activejob (= 6.0.0)
20
+ activerecord (= 6.0.0)
21
+ activestorage (= 6.0.0)
22
+ activesupport (= 6.0.0)
23
+ mail (>= 2.7.1)
24
+ actionmailer (6.0.0)
25
+ actionpack (= 6.0.0)
26
+ actionview (= 6.0.0)
27
+ activejob (= 6.0.0)
28
+ mail (~> 2.5, >= 2.5.4)
29
+ rails-dom-testing (~> 2.0)
30
+ actionpack (6.0.0)
31
+ actionview (= 6.0.0)
32
+ activesupport (= 6.0.0)
33
+ rack (~> 2.0)
34
+ rack-test (>= 0.6.3)
35
+ rails-dom-testing (~> 2.0)
36
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
37
+ actiontext (6.0.0)
38
+ actionpack (= 6.0.0)
39
+ activerecord (= 6.0.0)
40
+ activestorage (= 6.0.0)
41
+ activesupport (= 6.0.0)
42
+ nokogiri (>= 1.8.5)
43
+ actionview (6.0.0)
44
+ activesupport (= 6.0.0)
45
+ builder (~> 3.1)
46
+ erubi (~> 1.4)
47
+ rails-dom-testing (~> 2.0)
48
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
49
+ activejob (6.0.0)
50
+ activesupport (= 6.0.0)
51
+ globalid (>= 0.3.6)
52
+ activemodel (6.0.0)
53
+ activesupport (= 6.0.0)
54
+ activerecord (6.0.0)
55
+ activemodel (= 6.0.0)
56
+ activesupport (= 6.0.0)
57
+ activestorage (6.0.0)
58
+ actionpack (= 6.0.0)
59
+ activejob (= 6.0.0)
60
+ activerecord (= 6.0.0)
61
+ marcel (~> 0.3.1)
62
+ activesupport (6.0.0)
63
+ concurrent-ruby (~> 1.0, >= 1.0.2)
64
+ i18n (>= 0.7, < 2)
65
+ minitest (~> 5.1)
66
+ tzinfo (~> 1.1)
67
+ zeitwerk (~> 2.1, >= 2.1.8)
68
+ ast (2.4.0)
69
+ builder (3.2.3)
70
+ byebug (11.0.1)
71
+ coderay (1.1.2)
72
+ concurrent-ruby (1.1.5)
73
+ connection_pool (2.2.2)
74
+ crass (1.0.4)
75
+ docile (1.3.2)
76
+ erubi (1.8.0)
77
+ globalid (0.4.2)
78
+ activesupport (>= 4.2.0)
79
+ hiredis (0.6.3)
80
+ i18n (1.6.0)
81
+ concurrent-ruby (~> 1.0)
82
+ jaro_winkler (1.5.3)
83
+ json (2.2.0)
84
+ loofah (2.2.3)
85
+ crass (~> 1.0.2)
86
+ nokogiri (>= 1.5.9)
87
+ mail (2.7.1)
88
+ mini_mime (>= 0.1.1)
89
+ marcel (0.3.3)
90
+ mimemagic (~> 0.3.2)
91
+ method_source (0.9.2)
92
+ mimemagic (0.3.3)
93
+ mini_mime (1.0.2)
94
+ mini_portile2 (2.4.0)
95
+ minitest (5.11.3)
96
+ nio4r (2.5.1)
97
+ nokogiri (1.10.4)
98
+ mini_portile2 (~> 2.4.0)
99
+ parallel (1.17.0)
100
+ parser (2.6.3.0)
101
+ ast (~> 2.4.0)
102
+ pry (0.12.2)
103
+ coderay (~> 1.1.0)
104
+ method_source (~> 0.9.0)
105
+ pry-byebug (3.7.0)
106
+ byebug (~> 11.0)
107
+ pry (~> 0.10)
108
+ rack (2.0.7)
109
+ rack-protection (2.0.7)
110
+ rack
111
+ rack-test (1.1.0)
112
+ rack (>= 1.0, < 3)
113
+ rails (6.0.0)
114
+ actioncable (= 6.0.0)
115
+ actionmailbox (= 6.0.0)
116
+ actionmailer (= 6.0.0)
117
+ actionpack (= 6.0.0)
118
+ actiontext (= 6.0.0)
119
+ actionview (= 6.0.0)
120
+ activejob (= 6.0.0)
121
+ activemodel (= 6.0.0)
122
+ activerecord (= 6.0.0)
123
+ activestorage (= 6.0.0)
124
+ activesupport (= 6.0.0)
125
+ bundler (>= 1.3.0)
126
+ railties (= 6.0.0)
127
+ sprockets-rails (>= 2.0.0)
128
+ rails-dom-testing (2.0.3)
129
+ activesupport (>= 4.2.0)
130
+ nokogiri (>= 1.6)
131
+ rails-html-sanitizer (1.2.0)
132
+ loofah (~> 2.2, >= 2.2.2)
133
+ railties (6.0.0)
134
+ actionpack (= 6.0.0)
135
+ activesupport (= 6.0.0)
136
+ method_source
137
+ rake (>= 0.8.7)
138
+ thor (>= 0.20.3, < 2.0)
139
+ rainbow (3.0.0)
140
+ rake (12.3.3)
141
+ redis (4.1.2)
142
+ redis-namespace (1.6.0)
143
+ redis (>= 3.0.4)
144
+ rubocop (0.72.0)
145
+ jaro_winkler (~> 1.5.1)
146
+ parallel (~> 1.10)
147
+ parser (>= 2.6)
148
+ rainbow (>= 2.2.2, < 4.0)
149
+ ruby-progressbar (~> 1.7)
150
+ unicode-display_width (>= 1.4.0, < 1.7)
151
+ rubocop-performance (1.4.1)
152
+ rubocop (>= 0.71.0)
153
+ ruby-progressbar (1.10.1)
154
+ simplecov (0.17.0)
155
+ docile (~> 1.1)
156
+ json (>= 1.8, < 3)
157
+ simplecov-html (~> 0.10.0)
158
+ simplecov-html (0.10.2)
159
+ sprockets (3.7.2)
160
+ concurrent-ruby (~> 1.0)
161
+ rack (> 1, < 3)
162
+ sprockets-rails (3.2.1)
163
+ actionpack (>= 4.0)
164
+ activesupport (>= 4.0)
165
+ sprockets (>= 3.0.0)
166
+ sqlite3 (1.4.1)
167
+ standard (0.1.2)
168
+ rubocop (~> 0.72.0)
169
+ rubocop-performance (~> 1.4.0)
170
+ thor (0.20.3)
171
+ thread_safe (0.3.6)
172
+ toxiproxy (1.0.3)
173
+ tzinfo (1.2.5)
174
+ thread_safe (~> 0.1)
175
+ unicode-display_width (1.6.0)
176
+ websocket-driver (0.7.1)
177
+ websocket-extensions (>= 0.1.0)
178
+ websocket-extensions (0.1.4)
179
+ zeitwerk (2.1.9)
180
+
181
+ PLATFORMS
182
+ ruby
183
+
184
+ DEPENDENCIES
185
+ activerecord-jdbcsqlite3-adapter
186
+ hiredis
187
+ minitest
188
+ pry-byebug
189
+ rails
190
+ rake
191
+ redis-namespace
192
+ sidekiq!
193
+ simplecov
194
+ sqlite3
195
+ standard
196
+ toxiproxy
data/LICENSE CHANGED
@@ -5,5 +5,5 @@ the LGPLv3 license. Please see
5
5
  for license text.
6
6
 
7
7
  Sidekiq Pro has a commercial-friendly license allowing private forks
8
- and modifications of Sidekiq. Please see http://sidekiq.org/pro/ for
8
+ and modifications of Sidekiq. Please see https://sidekiq.org/products/pro.html for
9
9
  more detail. You can find the commercial license terms in COMM-LICENSE.
@@ -0,0 +1,35 @@
1
+ # Welcome to Sidekiq Pro 4.0!
2
+
3
+ Sidekiq Pro 4.0 is designed to work with Sidekiq 5.0.
4
+
5
+ ## What's New
6
+
7
+ * Batches now "die" if any of their jobs die. You can enumerate the set
8
+ of dead batches and their associated dead jobs. The success callback
9
+ for a dead batch will never fire unless these jobs are fixed.
10
+ ```ruby
11
+ Sidekiq::Batch::DeadSet.new.each do |status|
12
+ status.dead? # => true
13
+ status.dead_jobs # => [...]
14
+ end
15
+ ```
16
+ This API allows you to enumerate the batches which need help.
17
+ If you fix the issue and the dead jobs succeed, the batch will succeed.
18
+ * The older `reliable_fetch` and `timed_fetch` algorithms have been
19
+ removed. Only super\_fetch is available in 4.0.
20
+ * The statsd middleware has been tweaked to remove support for legacy,
21
+ pre-3.6.0 configuration and add relevant tags.
22
+ * Requires Sidekiq 5.0.5+.
23
+
24
+ ## Upgrade
25
+
26
+ * Upgrade to the latest Sidekiq Pro 3.x.
27
+ ```ruby
28
+ gem 'sidekiq-pro', '< 4'
29
+ ```
30
+ * Fix any deprecation warnings you see.
31
+ * Upgrade to 4.x.
32
+ ```ruby
33
+ gem 'sidekiq-pro', '< 5'
34
+ ```
35
+
@@ -0,0 +1,25 @@
1
+ # Welcome to Sidekiq Pro 5.0!
2
+
3
+ Sidekiq Pro 5.0 is mainly a cleanup release for Sidekiq 6.0. The
4
+ migration should be as close to trivial as a major version bump can be.
5
+ Note that Sidekiq 6.0 does have major breaking changes.
6
+
7
+ ## What's New
8
+
9
+ * New localizations for the Sidekiq Pro Web UI: ES, ZH, PT, JA, RU
10
+ * Removed deprecated APIs and warnings.
11
+ * Various changes for Sidekiq 6.0
12
+ * Requires Ruby 2.5+ and Redis 4.0+
13
+ * Requires Sidekiq 6.0+.
14
+
15
+ ## Upgrade
16
+
17
+ * Upgrade to the latest Sidekiq Pro 4.x.
18
+ ```ruby
19
+ gem 'sidekiq-pro', '< 5'
20
+ ```
21
+ * Fix any deprecation warnings you see.
22
+ * Upgrade to 5.x.
23
+ ```ruby
24
+ gem 'sidekiq-pro', '< 6'
25
+ ```
@@ -4,9 +4,145 @@
4
4
 
5
5
  Please see [http://sidekiq.org/](http://sidekiq.org/) for more details and how to buy.
6
6
 
7
- HEAD
7
+ 5.0.0
8
8
  ---------
9
9
 
10
+ - There is no significant migration from Sidekiq Pro 4.0 to 5.0
11
+ but make sure you read the [update notes for Sidekiq
12
+ 6.0](/mperham/sidekiq/blob/master/6.0-Upgrade.md).
13
+ - Removed various deprecated APIs and associated warnings.
14
+ - **BREAKING CHANGE** Remove the `Sidekiq::Batch::Status#dead_jobs` API in favor of
15
+ `Sidekiq::Batch::Status#dead_jids`. [#4217]
16
+ - Update Sidekiq Pro codebase to use StandardRB formatting
17
+ - Fix lingering "b-XXX-died" elements in Redis which could cause
18
+ excessive memory usage. [#4217]
19
+ - Add ES translations, see issues [#3949](https://github.com/mperham/sidekiq/issues/3949) and [#3951](https://github.com/mperham/sidekiq/issues/3951) to add your own language.
20
+
21
+ 4.0.5
22
+ ---------
23
+
24
+ - Increase super\_fetch retriever thread count from 1 to 2 to make it
25
+ less sensitive to Redis latency.
26
+ - Better handling of invalid job JSON by reliable scheduler [#4053]
27
+ - Added ZH, PT, JA and RU translations.
28
+
29
+ 4.0.4
30
+ ---------
31
+
32
+ - Update Sidekiq::Client patches to work with new Module#prepend
33
+ mechanism in Sidekiq 5.2.0. [#3930]
34
+
35
+ 4.0.3
36
+ ---------
37
+
38
+ - Add at\_exit handler to push any saved jobs in `reliable_push` when exiting. [#3823]
39
+ - Implement batch death callback. This is fired the first time a job within a batch dies. [#3841]
40
+ ```ruby
41
+ batch = Sidekiq::Batch.new
42
+ batch.on(:death, ...)
43
+ ```
44
+
45
+ 4.0.2
46
+ ---------
47
+
48
+ - Remove super\_fetch edge case leading to an unnecessary `sleep(1)`
49
+ call and resulting latency [#3790]
50
+ - Fix possible bad statsd metric call on super\_fetch startup
51
+ - Remove superfluous `freeze` calls on Strings [#3759]
52
+
53
+ 4.0.1
54
+ ---------
55
+
56
+ - Fix incompatibility with the statsd-ruby gem [#3740]
57
+ - Add tags to Statsd metrics when using Datadog [#3744]
58
+
59
+ 4.0.0
60
+ ---------
61
+
62
+ - See the [Sidekiq Pro 4.0](Pro-4.0-Upgrade.md) release notes.
63
+
64
+
65
+ 3.7.1
66
+ ---------
67
+
68
+ - Deprecate timed\_fetch. Switch to super\_fetch:
69
+ ```ruby
70
+ config.super_fetch!
71
+ ```
72
+
73
+
74
+ 3.7.0
75
+ ---------
76
+
77
+ - Refactor batch job success/failure to gracefully handle several edge
78
+ cases with regard to Sidekiq::Shutdown. This should greatly reduce
79
+ the chances of seeing the long-standing "negative pending count" problem. [#3710]
80
+
81
+
82
+ 3.6.1
83
+ ---------
84
+
85
+ - Add support for Datadog::Statsd, it is the recommended Statsd client. [#3699]
86
+ ```ruby
87
+ Sidekiq::Pro.dogstatsd = ->{ Datadog::Statsd.new("metrics.example.com", 8125) }
88
+ ```
89
+ - Size the statsd connection pool based on Sidekiq's concurrency [#3700]
90
+
91
+
92
+ 3.6.0
93
+ ---------
94
+
95
+ This release overhauls the Statsd metrics support and adds more
96
+ metrics for tracking Pro feature usage. In your initializer:
97
+ ```ruby
98
+ Sidekiq::Pro.statsd = ->{ ::Statsd.new("127.0.0.1", 8125) }
99
+ ```
100
+ Sidekiq Pro will emit more metrics to Statsd:
101
+ ```
102
+ jobs.expired - when a job is expired
103
+ jobs.recovered.push - when a job is recovered by reliable_push after network outage
104
+ jobs.recovered.fetch - when a job is recovered by super_fetch after process crash
105
+ batch.created - when a batch is created
106
+ batch.complete - when a batch is completed
107
+ batch.success - when a batch is successful
108
+ ```
109
+ Sidekiq Pro's existing Statsd middleware has been rewritten to leverage the new API.
110
+ Everything should be backwards compatible with one deprecation notice.
111
+
112
+
113
+ 3.5.4
114
+ ---------
115
+
116
+ - Fix case in SuperFetch where Redis downtime can lead to processor thread death [#3684]
117
+ - Fix case where TimedFetch might not recover some pending jobs
118
+ - Fix edge case in Batch::Status#poll leading to premature completion [#3640]
119
+ - Adjust scan API to check 100 elements at a time, to minimize network round trips
120
+ when scanning large sets.
121
+
122
+ 3.5.3
123
+ ---------
124
+
125
+ - Restore error check for super\_fetch's job ack [#3601]
126
+ - Trim error messages saved in Batch's failure hash, preventing huge
127
+ messages from bloating Redis. [#3570]
128
+
129
+ 3.5.2
130
+ ---------
131
+
132
+ - Fix `Status#completed?` when run against a Batch that had succeeded
133
+ and was deleted. [#3519]
134
+
135
+ 3.5.1
136
+ ---------
137
+
138
+ - Work with Sidekiq 5.0.2+
139
+ - Improve performance of super\_fetch with weighted queues [#3489]
140
+
141
+ 3.5.0
142
+ ---------
143
+
144
+ - Add queue pause/unpause endpoints for scripting via curl [#3445]
145
+ - Change how super\_fetch names private queues to avoid hostname/queue clashes. [#3443]
10
146
  - Re-implement `Sidekiq::Queue#delete_job` to avoid O(n) runtime [#3408]
11
147
  - Batch page displays Pending JIDs if less than 10 [#3130]
12
148
  - Batch page has a Search button to find associated Retries [#3130]