sidekiq 6.0.0 → 6.0.4

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 (50) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +21 -0
  3. data/6.0-Upgrade.md +3 -1
  4. data/Changes.md +97 -1
  5. data/Ent-Changes.md +7 -1
  6. data/Gemfile +1 -1
  7. data/Gemfile.lock +76 -73
  8. data/Pro-Changes.md +9 -1
  9. data/README.md +3 -1
  10. data/bin/sidekiqload +8 -4
  11. data/bin/sidekiqmon +4 -5
  12. data/lib/generators/sidekiq/worker_generator.rb +11 -1
  13. data/lib/sidekiq/api.rb +122 -89
  14. data/lib/sidekiq/cli.rb +24 -17
  15. data/lib/sidekiq/client.rb +18 -4
  16. data/lib/sidekiq/fetch.rb +7 -7
  17. data/lib/sidekiq/job_logger.rb +11 -3
  18. data/lib/sidekiq/job_retry.rb +23 -10
  19. data/lib/sidekiq/launcher.rb +1 -3
  20. data/lib/sidekiq/logger.rb +107 -11
  21. data/lib/sidekiq/middleware/chain.rb +11 -2
  22. data/lib/sidekiq/monitor.rb +1 -16
  23. data/lib/sidekiq/paginator.rb +7 -2
  24. data/lib/sidekiq/processor.rb +17 -19
  25. data/lib/sidekiq/redis_connection.rb +3 -0
  26. data/lib/sidekiq/scheduled.rb +13 -12
  27. data/lib/sidekiq/testing.rb +12 -0
  28. data/lib/sidekiq/util.rb +0 -2
  29. data/lib/sidekiq/version.rb +1 -1
  30. data/lib/sidekiq/web/application.rb +17 -14
  31. data/lib/sidekiq/web/helpers.rb +22 -10
  32. data/lib/sidekiq/worker.rb +4 -4
  33. data/lib/sidekiq.rb +12 -0
  34. data/sidekiq.gemspec +1 -1
  35. data/web/assets/javascripts/dashboard.js +2 -2
  36. data/web/assets/stylesheets/application-dark.css +125 -0
  37. data/web/assets/stylesheets/application.css +9 -0
  38. data/web/locales/de.yml +14 -2
  39. data/web/locales/en.yml +2 -0
  40. data/web/views/_job_info.erb +2 -1
  41. data/web/views/busy.erb +4 -1
  42. data/web/views/dead.erb +2 -2
  43. data/web/views/layout.erb +1 -0
  44. data/web/views/morgue.erb +4 -1
  45. data/web/views/queue.erb +10 -1
  46. data/web/views/queues.erb +8 -0
  47. data/web/views/retries.erb +4 -1
  48. data/web/views/retry.erb +2 -2
  49. data/web/views/scheduled.erb +4 -1
  50. metadata +5 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fda3ed37e1d981e1b32eea70669c678d400c071a9146a919848bcc598612de25
4
- data.tar.gz: 6580ab6c188b2514efe807479ca25c06ea584d1def175d84d94639bc20f80b1e
3
+ metadata.gz: 6bfe129c0a4abfedbab370011613f8acefe77791327e85993a4048be63507a6d
4
+ data.tar.gz: 2a67cee7d61bf27ef76fb54fe077b981de6c9286c3e46dc7303e47a31087fb54
5
5
  SHA512:
6
- metadata.gz: 25682d3dbf99d29fa3f56b7c74419863d3549b6e0c182e69c83fbc02a2955d053bca85eec53b474d4d22c7526e44e865f378aa4111152a91377b373be27c4d47
7
- data.tar.gz: e55d07434b1e2ab26df6748101bf10640fc08d4d93f00b75ed04d82ed309ee8529d652982430cd00671c98b5e53cc733bef4b686df58a6b0e116ba04c12139aa
6
+ metadata.gz: a989ad41c075a9c7accf401d14da3ef28c836668a9e3f49ec09a61f7114b7198c3485ded79c06fa4bb3f3c22271db9a7eaae0f156667d400178d26d6055e7ef0
7
+ data.tar.gz: f7200ade5b0f69f2ffbc8c708ed28d0efff3f6b6708ecdbe60ec22903ef2c58a78f362fc8a59540b045d17d91a0e19adbd647dbddd0a166f530087908715337d
data/.circleci/config.yml CHANGED
@@ -32,6 +32,9 @@ jobs:
32
32
  - <<: *save
33
33
  - <<: *unit
34
34
  "ruby-2.6":
35
+ environment:
36
+ COVERAGE: true
37
+ CC_TEST_REPORTER_ID: 003c3033501d70a2653bd887ff9a8b2884a263e6a4e27f2ba68748e15530918d
35
38
  docker:
36
39
  - image: circleci/ruby:2.6
37
40
  - image: circleci/redis:4.0
@@ -40,7 +43,25 @@ jobs:
40
43
  - <<: *restore
41
44
  - <<: *bundle
42
45
  - <<: *save
46
+
47
+ - run:
48
+ name: Setup Code Climate test-reporter
49
+ command: |
50
+ # download test reporter as a static binary
51
+ curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
52
+ chmod +x ./cc-test-reporter
53
+
54
+ - run:
55
+ name: Code Climate before-build
56
+ command: |
57
+ ./cc-test-reporter before-build
58
+
43
59
  - <<: *unit
60
+
61
+ - run:
62
+ name: Report code coverage to Code Climate
63
+ command: |
64
+ ./cc-test-reporter after-build -t simplecov --exit-code $?
44
65
  "jruby":
45
66
  docker:
46
67
  - image: circleci/jruby:latest
data/6.0-Upgrade.md CHANGED
@@ -10,6 +10,7 @@ This release has major breaking changes. Read and test carefully in production.
10
10
  - ActiveJobs can now use `sidekiq_options` directly to configure Sidekiq
11
11
  features/internals like the retry subsystem. Prefer the native
12
12
  Sidekiq::Worker APIs as some Sidekiq features (e.g. unique jobs) do not work well with AJ.
13
+ (requires Rails 6.0.2)
13
14
  ```ruby
14
15
  class MyJob < ActiveJob::Base
15
16
  queue_as :myqueue
@@ -31,9 +32,10 @@ you can override it by configuring the log formatter explicitly. See
31
32
  ```ruby
32
33
  Sidekiq.configure_server do |config|
33
34
  config.log_formatter = AcmeCorp::PlainLogFormatter.new
34
- # config.log_formatter = Sidekiq::Logger::Format::JSON.new
35
+ # config.log_formatter = Sidekiq::Logger::Formatters::JSON.new
35
36
  end
36
37
  ```
38
+ Please see the [Logging](https://github.com/mperham/sidekiq/wiki/Logging) wiki page for the latest documentation and notes.
37
39
  - **Remove the daemonization, logfile and pidfile command line arguments and `sidekiqctl` binary**.
38
40
  I've [noted for years](https://www.mikeperham.com/2014/09/22/dont-daemonize-your-daemons/)
39
41
  how modern services should be managed with a proper init system.
data/Changes.md CHANGED
@@ -2,12 +2,101 @@
2
2
 
3
3
  [Sidekiq Changes](https://github.com/mperham/sidekiq/blob/master/Changes.md) | [Sidekiq Pro Changes](https://github.com/mperham/sidekiq/blob/master/Pro-Changes.md) | [Sidekiq Enterprise Changes](https://github.com/mperham/sidekiq/blob/master/Ent-Changes.md)
4
4
 
5
+ 6.0.4
6
+ ---------
7
+
8
+ - Fix ActiveJob's `sidekiq_options` integration [#4404]
9
+ - Sidekiq Pro users will now see a Pause button next to each queue in
10
+ the Web UI, allowing them to pause queues manually [#4374, shayonj]
11
+ - Fix Sidekiq::Workers API unintentional change in 6.0.2 [#4387]
12
+
13
+
14
+ 6.0.3
15
+ ---------
16
+
17
+ - Fix `Sidekiq::Client.push_bulk` API which was erroneously putting
18
+ invalid `at` values in the job payloads [#4321]
19
+
20
+ 6.0.2
21
+ ---------
22
+
23
+ - Fix Sidekiq Enterprise's rolling restart functionality, broken by refactoring in 6.0.0. [#4334]
24
+ - More internal refactoring and performance tuning [fatkodima]
25
+
26
+ 6.0.1
27
+ ---------
28
+
29
+ - **Performance tuning**, Sidekiq should be 10-15% faster now [#4303, 4299,
30
+ 4269, fatkodima]
31
+ - **Dark Mode support in Web UI** (further design polish welcome!) [#4227, mperham,
32
+ fatkodima, silent-e]
33
+ - **Job-specific log levels**, allowing you to turn on debugging for
34
+ problematic workers. [fatkodima, #4287]
35
+ ```ruby
36
+ MyWorker.set(log_level: :debug).perform_async(...)
37
+ ```
38
+ - **Ad-hoc job tags**. You can tag your jobs with, e.g, subdomain, tenant, country,
39
+ locale, application, version, user/client, "alpha/beta/pro/ent", types of jobs,
40
+ teams/people responsible for jobs, additional metadata, etc.
41
+ Tags are shown on different pages with job listings. Sidekiq Pro users
42
+ can filter based on them [fatkodima, #4280]
43
+ ```ruby
44
+ class MyWorker
45
+ include Sidekiq::Worker
46
+ sidekiq_options tags: ['bank-ops', 'alpha']
47
+ ...
48
+ end
49
+ ```
50
+ - Fetch scheduled jobs in batches before pushing into specific queues.
51
+ This will decrease enqueueing time of scheduled jobs by a third. [fatkodima, #4273]
52
+ ```
53
+ ScheduledSet with 10,000 jobs
54
+ Before: 56.6 seconds
55
+ After: 39.2 seconds
56
+ ```
57
+ - Compress error backtraces before pushing into Redis, if you are
58
+ storing error backtraces, this will halve the size of your RetrySet
59
+ in Redis [fatkodima, #4272]
60
+ ```
61
+ RetrySet with 100,000 jobs
62
+ Before: 261 MB
63
+ After: 129 MB
64
+ ```
65
+ - Support display of ActiveJob 6.0 payloads in the Web UI [#4263]
66
+ - Add `SortedSet#scan` for pattern based scanning. For large sets this API will be **MUCH** faster
67
+ than standard iteration using each. [fatkodima, #4262]
68
+ ```ruby
69
+ Sidekiq::DeadSet.new.scan("UnreliableApi") do |job|
70
+ job.retry
71
+ end
72
+ ```
73
+ - Dramatically speed up SortedSet#find\_job(jid) by using Redis's ZSCAN
74
+ support, approx 10x faster. [fatkodima, #4259]
75
+ ```
76
+ zscan 0.179366 0.047727 0.227093 ( 1.161376)
77
+ enum 8.522311 0.419826 8.942137 ( 9.785079)
78
+ ```
79
+ - Respect rails' generators `test_framework` option and gracefully handle extra `worker` suffix on generator [fatkodima, #4256]
80
+ - Add ability to sort 'Enqueued' page on Web UI by position in the queue [fatkodima, #4248]
81
+ - Support `Client.push_bulk` with different delays [fatkodima, #4243]
82
+ ```ruby
83
+ Sidekiq::Client.push_bulk("class" => FooJob, "args" => [[1], [2]], "at" => [1.minute.from_now.to_f, 5.minutes.from_now.to_f])
84
+ ```
85
+ - Easier way to test enqueuing specific ActionMailer and ActiveRecord delayed jobs. Instead of manually
86
+ parsing embedded class, you can now test by fetching jobs for specific classes. [fatkodima, #4292]
87
+ ```ruby
88
+ assert_equal 1, Sidekiq::Extensions::DelayedMailer.jobs_for(FooMailer).size
89
+ ```
90
+ - Add `sidekiqmon` to gemspec executables [#4242]
91
+ - Gracefully handle `Sidekiq.logger = nil` [#4240]
92
+ - Inject Sidekiq::LogContext module if user-supplied logger does not include it [#4239]
93
+
5
94
  6.0
6
95
  ---------
7
96
 
8
97
  This release has major breaking changes. Read and test carefully in production.
9
98
 
10
- - ActiveJobs can now use `sidekiq_options` directly to configure Sidekiq
99
+ - With Rails 6.0.1+, ActiveJobs can now use `sidekiq_options` directly to configure Sidekiq
11
100
  features/internals like the retry subsystem. [#4213, pirj]
12
101
  ```ruby
13
102
  class MyJob < ActiveJob::Base
@@ -17,6 +106,13 @@ class MyJob < ActiveJob::Base
17
106
  end
18
107
  end
19
108
  ```
109
+ - Logging has been redesigned to allow for pluggable log formatters:
110
+ ```ruby
111
+ Sidekiq.configure_server do |config|
112
+ config.log_formatter = Sidekiq::Logger::Formatters::JSON.new
113
+ end
114
+ ```
115
+ See the [Logging wiki page](https://github.com/mperham/sidekiq/wiki/Logging) for more details.
20
116
  - **BREAKING CHANGE** Validate proper usage of the `REDIS_PROVIDER`
21
117
  variable. This variable is meant to hold the name of the environment
22
118
  variable which contains your Redis URL, so that you can switch Redis
data/Ent-Changes.md CHANGED
@@ -4,10 +4,16 @@
4
4
 
5
5
  Please see [http://sidekiq.org/](http://sidekiq.org/) for more details and how to buy.
6
6
 
7
+ 2.0.1
8
+ -------------
9
+
10
+ - Periodic job registration API adjusted to avoid loading classes in initializer [#4271]
11
+ - Remove support for deprecated ENV variables (COUNT, MAXMEM\_MB, INDEX) in swarm code
12
+
7
13
  2.0.0
8
14
  -------------
9
15
 
10
- - Except for the [newly required credentials](/mperham/sidekiq/issue/4232), Sidekiq Enterprise 2.0 does
16
+ - Except for the [newly required credentials](https://github.com/mperham/sidekiq/issues/4232), Sidekiq Enterprise 2.0 does
11
17
  not have any significant migration steps.
12
18
  - Sidekiq Enterprise must now be started with valid license credentials. [#4232]
13
19
  - Call `GC.compact` if possible in sidekiqswarm before forking [#4181]
data/Gemfile CHANGED
@@ -4,7 +4,7 @@ gemspec
4
4
 
5
5
  gem "rake"
6
6
  gem "redis-namespace"
7
- gem "rails"
7
+ gem "rails", ">= 6.0.2"
8
8
  gem "sqlite3", platforms: :ruby
9
9
  gem "activerecord-jdbcsqlite3-adapter", platforms: :jruby
10
10
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- sidekiq (6.0.0)
4
+ sidekiq (6.0.4)
5
5
  connection_pool (>= 2.2.2)
6
6
  rack (>= 2.0.0)
7
7
  rack-protection (>= 2.0.0)
@@ -10,78 +10,78 @@ PATH
10
10
  GEM
11
11
  remote: https://rubygems.org/
12
12
  specs:
13
- actioncable (6.0.0)
14
- actionpack (= 6.0.0)
13
+ actioncable (6.0.2)
14
+ actionpack (= 6.0.2)
15
15
  nio4r (~> 2.0)
16
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)
17
+ actionmailbox (6.0.2)
18
+ actionpack (= 6.0.2)
19
+ activejob (= 6.0.2)
20
+ activerecord (= 6.0.2)
21
+ activestorage (= 6.0.2)
22
+ activesupport (= 6.0.2)
23
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)
24
+ actionmailer (6.0.2)
25
+ actionpack (= 6.0.2)
26
+ actionview (= 6.0.2)
27
+ activejob (= 6.0.2)
28
28
  mail (~> 2.5, >= 2.5.4)
29
29
  rails-dom-testing (~> 2.0)
30
- actionpack (6.0.0)
31
- actionview (= 6.0.0)
32
- activesupport (= 6.0.0)
30
+ actionpack (6.0.2)
31
+ actionview (= 6.0.2)
32
+ activesupport (= 6.0.2)
33
33
  rack (~> 2.0)
34
34
  rack-test (>= 0.6.3)
35
35
  rails-dom-testing (~> 2.0)
36
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)
37
+ actiontext (6.0.2)
38
+ actionpack (= 6.0.2)
39
+ activerecord (= 6.0.2)
40
+ activestorage (= 6.0.2)
41
+ activesupport (= 6.0.2)
42
42
  nokogiri (>= 1.8.5)
43
- actionview (6.0.0)
44
- activesupport (= 6.0.0)
43
+ actionview (6.0.2)
44
+ activesupport (= 6.0.2)
45
45
  builder (~> 3.1)
46
46
  erubi (~> 1.4)
47
47
  rails-dom-testing (~> 2.0)
48
48
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
49
- activejob (6.0.0)
50
- activesupport (= 6.0.0)
49
+ activejob (6.0.2)
50
+ activesupport (= 6.0.2)
51
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)
52
+ activemodel (6.0.2)
53
+ activesupport (= 6.0.2)
54
+ activerecord (6.0.2)
55
+ activemodel (= 6.0.2)
56
+ activesupport (= 6.0.2)
57
+ activestorage (6.0.2)
58
+ actionpack (= 6.0.2)
59
+ activejob (= 6.0.2)
60
+ activerecord (= 6.0.2)
61
61
  marcel (~> 0.3.1)
62
- activesupport (6.0.0)
62
+ activesupport (6.0.2)
63
63
  concurrent-ruby (~> 1.0, >= 1.0.2)
64
64
  i18n (>= 0.7, < 2)
65
65
  minitest (~> 5.1)
66
66
  tzinfo (~> 1.1)
67
- zeitwerk (~> 2.1, >= 2.1.8)
67
+ zeitwerk (~> 2.2)
68
68
  ast (2.4.0)
69
- builder (3.2.3)
69
+ builder (3.2.4)
70
70
  byebug (11.0.1)
71
71
  coderay (1.1.2)
72
72
  concurrent-ruby (1.1.5)
73
73
  connection_pool (2.2.2)
74
- crass (1.0.4)
74
+ crass (1.0.5)
75
75
  docile (1.3.2)
76
- erubi (1.8.0)
76
+ erubi (1.9.0)
77
77
  globalid (0.4.2)
78
78
  activesupport (>= 4.2.0)
79
79
  hiredis (0.6.3)
80
- i18n (1.6.0)
80
+ i18n (1.7.0)
81
81
  concurrent-ruby (~> 1.0)
82
- jaro_winkler (1.5.3)
82
+ jaro_winkler (1.5.4)
83
83
  json (2.2.0)
84
- loofah (2.2.3)
84
+ loofah (2.4.0)
85
85
  crass (~> 1.0.2)
86
86
  nokogiri (>= 1.5.9)
87
87
  mail (2.7.1)
@@ -93,11 +93,11 @@ GEM
93
93
  mini_mime (1.0.2)
94
94
  mini_portile2 (2.4.0)
95
95
  minitest (5.11.3)
96
- nio4r (2.5.1)
97
- nokogiri (1.10.4)
96
+ nio4r (2.5.2)
97
+ nokogiri (1.10.7)
98
98
  mini_portile2 (~> 2.4.0)
99
- parallel (1.17.0)
100
- parser (2.6.3.0)
99
+ parallel (1.19.0)
100
+ parser (2.6.5.0)
101
101
  ast (~> 2.4.0)
102
102
  pry (0.12.2)
103
103
  coderay (~> 1.1.0)
@@ -110,29 +110,29 @@ GEM
110
110
  rack
111
111
  rack-test (1.1.0)
112
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)
113
+ rails (6.0.2)
114
+ actioncable (= 6.0.2)
115
+ actionmailbox (= 6.0.2)
116
+ actionmailer (= 6.0.2)
117
+ actionpack (= 6.0.2)
118
+ actiontext (= 6.0.2)
119
+ actionview (= 6.0.2)
120
+ activejob (= 6.0.2)
121
+ activemodel (= 6.0.2)
122
+ activerecord (= 6.0.2)
123
+ activestorage (= 6.0.2)
124
+ activesupport (= 6.0.2)
125
125
  bundler (>= 1.3.0)
126
- railties (= 6.0.0)
126
+ railties (= 6.0.2)
127
127
  sprockets-rails (>= 2.0.0)
128
128
  rails-dom-testing (2.0.3)
129
129
  activesupport (>= 4.2.0)
130
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)
131
+ rails-html-sanitizer (1.3.0)
132
+ loofah (~> 2.3)
133
+ railties (6.0.2)
134
+ actionpack (= 6.0.2)
135
+ activesupport (= 6.0.2)
136
136
  method_source
137
137
  rake (>= 0.8.7)
138
138
  thor (>= 0.20.3, < 2.0)
@@ -141,14 +141,14 @@ GEM
141
141
  redis (4.1.2)
142
142
  redis-namespace (1.6.0)
143
143
  redis (>= 3.0.4)
144
- rubocop (0.72.0)
144
+ rubocop (0.75.1)
145
145
  jaro_winkler (~> 1.5.1)
146
146
  parallel (~> 1.10)
147
147
  parser (>= 2.6)
148
148
  rainbow (>= 2.2.2, < 4.0)
149
149
  ruby-progressbar (~> 1.7)
150
150
  unicode-display_width (>= 1.4.0, < 1.7)
151
- rubocop-performance (1.4.1)
151
+ rubocop-performance (1.5.1)
152
152
  rubocop (>= 0.71.0)
153
153
  ruby-progressbar (1.10.1)
154
154
  simplecov (0.17.0)
@@ -156,7 +156,7 @@ GEM
156
156
  json (>= 1.8, < 3)
157
157
  simplecov-html (~> 0.10.0)
158
158
  simplecov-html (0.10.2)
159
- sprockets (3.7.2)
159
+ sprockets (4.0.0)
160
160
  concurrent-ruby (~> 1.0)
161
161
  rack (> 1, < 3)
162
162
  sprockets-rails (3.2.1)
@@ -164,10 +164,10 @@ GEM
164
164
  activesupport (>= 4.0)
165
165
  sprockets (>= 3.0.0)
166
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)
167
+ standard (0.1.6)
168
+ rubocop (~> 0.75.0)
169
+ rubocop-performance (~> 1.5.0)
170
+ thor (1.0.1)
171
171
  thread_safe (0.3.6)
172
172
  toxiproxy (1.0.3)
173
173
  tzinfo (1.2.5)
@@ -176,7 +176,7 @@ GEM
176
176
  websocket-driver (0.7.1)
177
177
  websocket-extensions (>= 0.1.0)
178
178
  websocket-extensions (0.1.4)
179
- zeitwerk (2.1.9)
179
+ zeitwerk (2.2.2)
180
180
 
181
181
  PLATFORMS
182
182
  ruby
@@ -186,7 +186,7 @@ DEPENDENCIES
186
186
  hiredis
187
187
  minitest
188
188
  pry-byebug
189
- rails
189
+ rails (>= 6.0.2)
190
190
  rake
191
191
  redis-namespace
192
192
  sidekiq!
@@ -194,3 +194,6 @@ DEPENDENCIES
194
194
  sqlite3
195
195
  standard
196
196
  toxiproxy
197
+
198
+ BUNDLED WITH
199
+ 1.17.2
data/Pro-Changes.md CHANGED
@@ -4,12 +4,20 @@
4
4
 
5
5
  Please see [http://sidekiq.org/](http://sidekiq.org/) for more details and how to buy.
6
6
 
7
+ 5.0.1
8
+ ---------
9
+
10
+ - Rejigger batch failures UI to add direct links to retries and scheduled jobs [#4209]
11
+ - Delete batch data with `UNLINK` [#4155]
12
+ - Fix bug where a scheduled job can lose its scheduled time when using reliable push [#4267]
13
+ - Sidekiq::JobSet#scan and #find_job APIs have been promoted to Sidekiq OSS. [#4259]
14
+
7
15
  5.0.0
8
16
  ---------
9
17
 
10
18
  - There is no significant migration from Sidekiq Pro 4.0 to 5.0
11
19
  but make sure you read the [update notes for Sidekiq
12
- 6.0](/mperham/sidekiq/blob/master/6.0-Upgrade.md).
20
+ 6.0](https://github.com/mperham/sidekiq/blob/master/6.0-Upgrade.md).
13
21
  - Removed various deprecated APIs and associated warnings.
14
22
  - **BREAKING CHANGE** Remove the `Sidekiq::Batch::Status#dead_jobs` API in favor of
15
23
  `Sidekiq::Batch::Status#dead_jids`. [#4217]
data/README.md CHANGED
@@ -3,6 +3,7 @@ Sidekiq
3
3
 
4
4
  [![Gem Version](https://badge.fury.io/rb/sidekiq.svg)](https://rubygems.org/gems/sidekiq)
5
5
  [![Code Climate](https://codeclimate.com/github/mperham/sidekiq.svg)](https://codeclimate.com/github/mperham/sidekiq)
6
+ [![Test Coverage](https://codeclimate.com/github/mperham/sidekiq/badges/coverage.svg)](https://codeclimate.com/github/mperham/sidekiq/coverage)
6
7
  [![Build Status](https://circleci.com/gh/mperham/sidekiq/tree/master.svg?style=svg)](https://circleci.com/gh/mperham/sidekiq/tree/master)
7
8
  [![Gitter Chat](https://badges.gitter.im/mperham/sidekiq.svg)](https://gitter.im/mperham/sidekiq)
8
9
 
@@ -18,7 +19,8 @@ Performance
18
19
 
19
20
  Version | Latency | Garbage created for 10k jobs | Time to process 100k jobs | Throughput | Ruby
20
21
  -----------------|------|---------|---------|------------------------|-----
21
- Sidekiq 6.0.0 | 3 ms | 156 MB | 19 sec | **5200 jobs/sec** | MRI 2.6.3
22
+ Sidekiq 6.0.2 | 3 ms | 156 MB | 14.0 sec| **7100 jobs/sec** | MRI 2.6.3
23
+ Sidekiq 6.0.0 | 3 ms | 156 MB | 19 sec | 5200 jobs/sec | MRI 2.6.3
22
24
  Sidekiq 4.0.0 | 10 ms | 151 MB | 22 sec | 4500 jobs/sec |
23
25
  Sidekiq 3.5.1 | 22 ms | 1257 MB | 125 sec | 800 jobs/sec |
24
26
  Resque 1.25.2 | - | - | 420 sec | 240 jobs/sec |
data/bin/sidekiqload CHANGED
@@ -5,7 +5,8 @@
5
5
  $TESTING = false
6
6
 
7
7
  #require 'ruby-prof'
8
- Bundler.require(:default)
8
+ require 'bundler/setup'
9
+ Bundler.require(:default, :load_test)
9
10
 
10
11
  require_relative '../lib/sidekiq/cli'
11
12
  require_relative '../lib/sidekiq/launcher'
@@ -102,17 +103,20 @@ iter.times do
102
103
  end
103
104
  Sidekiq.logger.error "Created #{count*iter} jobs"
104
105
 
106
+ start = Time.now
107
+
105
108
  Monitoring = Thread.new do
106
109
  watchdog("monitor thread") do
107
110
  while true
108
- sleep 0.5
111
+ sleep 0.2
109
112
  qsize = Sidekiq.redis do |conn|
110
113
  conn.llen "queue:default"
111
114
  end
112
115
  total = qsize
113
- Sidekiq.logger.error("RSS: #{Process.rss} Pending: #{total}")
116
+ #Sidekiq.logger.error("RSS: #{Process.rss} Pending: #{total}")
114
117
  if total == 0
115
- Sidekiq.logger.error("Done, now here's the latency for three jobs")
118
+ Sidekiq.logger.error("Done, #{iter * count} jobs in #{Time.now - start} sec")
119
+ Sidekiq.logger.error("Now here's the latency for three jobs")
116
120
 
117
121
  LoadWorker.perform_async(1, Time.now.to_f)
118
122
  LoadWorker.perform_async(2, Time.now.to_f)
data/bin/sidekiqmon CHANGED
@@ -2,8 +2,7 @@
2
2
 
3
3
  require 'sidekiq/monitor'
4
4
 
5
- if ARGV[0] == 'status'
6
- Sidekiq::Monitor::Status.new.display(ARGV[1])
7
- else
8
- Sidekiq::Monitor.print_usage
9
- end
5
+ section = "all"
6
+ section = ARGV[0] if ARGV.size == 1
7
+
8
+ Sidekiq::Monitor::Status.new.display(section)
@@ -16,7 +16,9 @@ module Sidekiq
16
16
  end
17
17
 
18
18
  def create_test_file
19
- if defined?(RSpec)
19
+ return unless test_framework
20
+
21
+ if test_framework == :rspec
20
22
  create_worker_spec
21
23
  else
22
24
  create_worker_test
@@ -42,6 +44,14 @@ module Sidekiq
42
44
  )
43
45
  template "worker_test.rb.erb", template_file
44
46
  end
47
+
48
+ def file_name
49
+ @_file_name ||= super.sub(/_?worker\z/i, "")
50
+ end
51
+
52
+ def test_framework
53
+ ::Rails.application.config.generators.options[:rails][:test_framework]
54
+ end
45
55
  end
46
56
  end
47
57
  end