sidekiq 6.0.0.pre1 → 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.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 66e4721768942652832cd78e2ff64152e0bfe87e43a591d10c456999988838b4
4
- data.tar.gz: 3186e6bec7a002151d7d6fb4baf83f6072aa3823434d96dbfac8ed52c3ea9ea9
3
+ metadata.gz: fda3ed37e1d981e1b32eea70669c678d400c071a9146a919848bcc598612de25
4
+ data.tar.gz: 6580ab6c188b2514efe807479ca25c06ea584d1def175d84d94639bc20f80b1e
5
5
  SHA512:
6
- metadata.gz: c97aaa9b382b95c01c42019bdc12bc80f3805bbe9fa28921c0d5bd0b1383affd5e081464c75004dd07b780cc60d865cfea03ea1585a52ce3d9f89a06b5801353
7
- data.tar.gz: f9de3b4b488af11c085cd8c1f577e98f661e446ce0074f7da63fa36ba559892bd53e29abcb2c09215c82c866c98e8d7afeb6d42563aa516be587dfe66b37e265
6
+ metadata.gz: 25682d3dbf99d29fa3f56b7c74419863d3549b6e0c182e69c83fbc02a2955d053bca85eec53b474d4d22c7526e44e865f378aa4111152a91377b373be27c4d47
7
+ data.tar.gz: e55d07434b1e2ab26df6748101bf10640fc08d4d93f00b75ed04d82ed309ee8529d652982430cd00671c98b5e53cc733bef4b686df58a6b0e116ba04c12139aa
data/.gitignore CHANGED
@@ -1,8 +1,6 @@
1
1
  .rvmrc
2
2
  .ruby-version
3
3
  tags
4
- Gemfile.lock
5
- gemfiles/*.lock
6
4
  *.swp
7
5
  dump.rdb
8
6
  .rbx
@@ -7,6 +7,17 @@ of Sidekiq. It also drops support for EOL versions of Ruby and Rails.
7
7
 
8
8
  This release has major breaking changes. Read and test carefully in production.
9
9
 
10
+ - ActiveJobs can now use `sidekiq_options` directly to configure Sidekiq
11
+ features/internals like the retry subsystem. Prefer the native
12
+ Sidekiq::Worker APIs as some Sidekiq features (e.g. unique jobs) do not work well with AJ.
13
+ ```ruby
14
+ class MyJob < ActiveJob::Base
15
+ queue_as :myqueue
16
+ sidekiq_options retry: 10, backtrace: 20
17
+ def perform(...)
18
+ end
19
+ end
20
+ ```
10
21
  - Logging has been redesigned to allow pluggable formatters and several
11
22
  formats ship with Sidekiq:
12
23
  * default - your typical output on macOS
@@ -23,10 +34,11 @@ Sidekiq.configure_server do |config|
23
34
  # config.log_formatter = Sidekiq::Logger::Format::JSON.new
24
35
  end
25
36
  ```
26
- - **Remove the daemonization, logfile and pidfile command line arguments**.
37
+ - **Remove the daemonization, logfile and pidfile command line arguments and `sidekiqctl` binary**.
27
38
  I've [noted for years](https://www.mikeperham.com/2014/09/22/dont-daemonize-your-daemons/)
28
39
  how modern services should be managed with a proper init system.
29
- Managing services manually is more error-prone, let your operating system do it for you. See the Deployment wiki page for options.
40
+ Managing services manually is more error-prone, let your operating system do it for you.
41
+ systemd, upstart, and foreman are three options. See the Deployment wiki page for the latest details.
30
42
  - **Validate proper usage of the `REDIS_PROVIDER` variable.**
31
43
  This variable is meant to hold the name of the environment
32
44
  variable which contains your Redis URL, so that you can switch Redis
@@ -38,7 +50,7 @@ Both Heroku and ECS now use 30 second shutdown timeout
38
50
  by default and we want Sidekiq to take advantage of this time. If you
39
51
  have deployment scripts which depend on the old default timeout, use `-t 8` to
40
52
  get the old behavior. [#3968]
41
- * **Rails <5** is no longer supported.
53
+ * **Rails <5** is no longer supported. Rails 6+ only works in zeitwerk mode.
42
54
  * **Ruby <2.5** is no longer supported.
43
55
  * **Redis <4** is no longer supported.
44
56
 
data/Changes.md CHANGED
@@ -7,6 +7,16 @@
7
7
 
8
8
  This release has major breaking changes. Read and test carefully in production.
9
9
 
10
+ - ActiveJobs can now use `sidekiq_options` directly to configure Sidekiq
11
+ features/internals like the retry subsystem. [#4213, pirj]
12
+ ```ruby
13
+ class MyJob < ActiveJob::Base
14
+ queue_as :myqueue
15
+ sidekiq_options retry: 10, backtrace: 20
16
+ def perform(...)
17
+ end
18
+ end
19
+ ```
10
20
  - **BREAKING CHANGE** Validate proper usage of the `REDIS_PROVIDER`
11
21
  variable. This variable is meant to hold the name of the environment
12
22
  variable which contains your Redis URL, so that you can switch Redis
@@ -0,0 +1,37 @@
1
+ # Welcome to Sidekiq Enterprise 2.0!
2
+
3
+ Sidekiq Enterprise 2.0 adds a few new features and adds the requirement that license
4
+ credentials be available at runtime. Note that Sidekiq 6.0 does have major breaking changes.
5
+
6
+ ## What's New
7
+
8
+ * Sidekiq Enterprise now requires license credentials at runtime. If you
9
+ configured Bundler as described in the access email you need do
10
+ nothing, everything should just work. If you are vendoring Sidekiq
11
+ Enterprise you will need to configure Bundler also or set
12
+ `SIDEKIQ_ENT_USERNAME=abcdef12 bundle exec sidekiq...` when starting the
13
+ process. [#4232]
14
+ * Dead jobs now release any unique locks they were holding when they died [#4162]
15
+ * Backoff can now be customized per rate limiter by passing in a Proc [#4219]
16
+ ```ruby
17
+ limiter = Sidekiq::Limiter.bucket(:stripe, 10, :second, backoff: ->(limiter, job) {
18
+ return job['overrated'] || 5 # wait for N seconds, where N is the number of
19
+ # times we've failed the rate limit
20
+ })
21
+ ```
22
+ * Removed deprecated APIs and warnings.
23
+ * Various changes for Sidekiq 6.0
24
+ * Requires Ruby 2.5+ and Redis 4.0+
25
+ * Requires Sidekiq 6.0+ and Sidekiq Pro 5.0+
26
+
27
+ ## Upgrade
28
+
29
+ * Upgrade to the latest Sidekiq Enterprise 1.x.
30
+ ```ruby
31
+ gem 'sidekiq-ent', '< 2'
32
+ ```
33
+ * Fix any deprecation warnings you see.
34
+ * Upgrade to 2.x.
35
+ ```ruby
36
+ gem 'sidekiq-ent', '< 3'
37
+ ```
@@ -4,6 +4,18 @@
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
+
7
19
  1.8.1
8
20
  -------------
9
21
 
@@ -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
@@ -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,18 @@
4
4
 
5
5
  Please see [http://sidekiq.org/](http://sidekiq.org/) for more details and how to buy.
6
6
 
7
- HEAD
8
- ---------
9
-
7
+ 5.0.0
8
+ ---------
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]
10
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.
11
20
 
12
21
  4.0.5
data/README.md CHANGED
@@ -13,32 +13,26 @@ Sidekiq uses threads to handle many jobs at the same time in the
13
13
  same process. It does not require Rails but will integrate tightly with
14
14
  Rails to make background processing dead simple.
15
15
 
16
- Sidekiq is compatible with Resque. It uses the exact same
17
- message format as Resque so it can integrate into an existing Resque processing farm.
18
- You can have Sidekiq and Resque run side-by-side at the same time and
19
- use the Resque client to enqueue jobs in Redis to be processed by Sidekiq.
20
-
21
16
  Performance
22
17
  ---------------
23
18
 
24
- Version | Latency | Garbage created for 10,000 jobs | Time to process 100,000 jobs | Throughput
25
- -----------------|------|---------|---------|------------------------
26
- Sidekiq 4.0.0 | 10ms | 151 MB | 22 sec | **4500 jobs/sec**
27
- Sidekiq 3.5.1 | 22ms | 1257 MB | 125 sec | 800 jobs/sec
28
- Resque 1.25.2 | - | - | 420 sec | 240 jobs/sec
29
- DelayedJob 4.1.1 | - | - | 465 sec | 215 jobs/sec
19
+ Version | Latency | Garbage created for 10k jobs | Time to process 100k jobs | Throughput | Ruby
20
+ -----------------|------|---------|---------|------------------------|-----
21
+ Sidekiq 6.0.0 | 3 ms | 156 MB | 19 sec | **5200 jobs/sec** | MRI 2.6.3
22
+ Sidekiq 4.0.0 | 10 ms | 151 MB | 22 sec | 4500 jobs/sec |
23
+ Sidekiq 3.5.1 | 22 ms | 1257 MB | 125 sec | 800 jobs/sec |
24
+ Resque 1.25.2 | - | - | 420 sec | 240 jobs/sec |
25
+ DelayedJob 4.1.1 | - | - | 465 sec | 215 jobs/sec |
30
26
 
31
- <small>This benchmark can be found in `bin/sidekiqload`.</small>
27
+ This benchmark can be found in `bin/sidekiqload` and assumes a Redis network latency of 1ms.
32
28
 
33
29
  Requirements
34
30
  -----------------
35
31
 
36
- Sidekiq supports CRuby 2.2.2+ and JRuby 9k.
37
-
38
- All Rails releases >= 4.0 are officially supported.
32
+ - Redis: 4.0+
33
+ - Ruby: MRI 2.5+ or JRuby 9.2+.
39
34
 
40
- Redis 2.8 or greater is required. 3.0.3+ is recommended for large
41
- installations with thousands of worker threads.
35
+ Sidekiq 6.0 supports Rails 5.0+ but does not require it.
42
36
 
43
37
 
44
38
  Installation
@@ -63,7 +57,7 @@ Want to Upgrade?
63
57
  I also sell Sidekiq Pro and Sidekiq Enterprise, extensions to Sidekiq which provide more
64
58
  features, a commercial-friendly license and allow you to support high
65
59
  quality open source development all at the same time. Please see the
66
- [Sidekiq](http://sidekiq.org/) homepage for more detail.
60
+ [Sidekiq](https://sidekiq.org/) homepage for more detail.
67
61
 
68
62
  Subscribe to the **[quarterly newsletter](https://tinyletter.com/sidekiq)** to stay informed about the latest
69
63
  features and changes to Sidekiq and its bigger siblings.
@@ -77,24 +71,16 @@ Problems?
77
71
  If you have a problem, please review the [FAQ](https://github.com/mperham/sidekiq/wiki/FAQ) and [Troubleshooting](https://github.com/mperham/sidekiq/wiki/Problems-and-Troubleshooting) wiki pages.
78
72
  Searching the [issues](https://github.com/mperham/sidekiq/issues) for your problem is also a good idea.
79
73
 
80
- Sidekiq Pro and Sidekiq Enterprise customers get private email support. You can purchase at http://sidekiq.org; email support@contribsys.com for help.
74
+ Sidekiq Pro and Sidekiq Enterprise customers get private email support. You can purchase at https://sidekiq.org; email support@contribsys.com for help.
81
75
 
82
76
  Useful resources:
83
77
 
84
78
  * Product documentation is in the [wiki](https://github.com/mperham/sidekiq/wiki).
85
- * Release announcements are made to the [@sidekiq](https://twitter.com/sidekiq) Twitter account.
79
+ * Occasional announcements are made to the [@sidekiq](https://twitter.com/sidekiq) Twitter account.
86
80
  * The [Sidekiq tag](https://stackoverflow.com/questions/tagged/sidekiq) on Stack Overflow has lots of useful Q &amp; A.
87
81
 
88
- **No support via Twitter**
89
-
90
82
  Every Friday morning is Sidekiq happy hour: I video chat and answer questions.
91
- See the [Sidekiq support page](http://sidekiq.org/support.html) for details.
92
-
93
- Thanks
94
- -----------------
95
-
96
- Sidekiq stays fast by using the [JProfiler java profiler](http://www.ej-technologies.com/products/jprofiler/overview.html) to find and fix
97
- performance problems on JRuby. Unfortunately MRI does not have good multithreaded profiling tools.
83
+ See the [Sidekiq support page](https://sidekiq.org/support.html) for details.
98
84
 
99
85
 
100
86
  License
@@ -106,4 +92,4 @@ Please see [LICENSE](https://github.com/mperham/sidekiq/blob/master/LICENSE) for
106
92
  Author
107
93
  -----------------
108
94
 
109
- Mike Perham, [@mperham](https://twitter.com/mperham) / [@sidekiq](https://twitter.com/sidekiq), [http://www.mikeperham.com](http://www.mikeperham.com) / [http://www.contribsys.com](http://www.contribsys.com)
95
+ Mike Perham, [@mperham@mastodon.xyz](https://mastodon.xyz/@mperham) / [@sidekiq](https://twitter.com/sidekiq), [https://www.mikeperham.com](https://www.mikeperham.com) / [https://www.contribsys.com](https://www.contribsys.com)