sidekiq 5.2.6 → 6.0.3

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.

Potentially problematic release.


This version of sidekiq might be problematic. Click here for more details.

Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +82 -0
  3. data/.gitignore +0 -2
  4. data/.standard.yml +20 -0
  5. data/6.0-Upgrade.md +72 -0
  6. data/Changes.md +128 -0
  7. data/Ent-2.0-Upgrade.md +37 -0
  8. data/Ent-Changes.md +18 -0
  9. data/Gemfile +12 -11
  10. data/Gemfile.lock +196 -0
  11. data/Pro-5.0-Upgrade.md +25 -0
  12. data/Pro-Changes.md +18 -1
  13. data/README.md +19 -31
  14. data/Rakefile +5 -4
  15. data/bin/sidekiqload +32 -24
  16. data/bin/sidekiqmon +8 -0
  17. data/lib/generators/sidekiq/templates/worker_test.rb.erb +1 -1
  18. data/lib/generators/sidekiq/worker_generator.rb +20 -12
  19. data/lib/sidekiq.rb +61 -42
  20. data/lib/sidekiq/api.rb +230 -214
  21. data/lib/sidekiq/cli.rb +111 -174
  22. data/lib/sidekiq/client.rb +55 -46
  23. data/lib/sidekiq/delay.rb +5 -6
  24. data/lib/sidekiq/exception_handler.rb +10 -12
  25. data/lib/sidekiq/extensions/action_mailer.rb +10 -20
  26. data/lib/sidekiq/extensions/active_record.rb +9 -7
  27. data/lib/sidekiq/extensions/class_methods.rb +9 -7
  28. data/lib/sidekiq/extensions/generic_proxy.rb +4 -4
  29. data/lib/sidekiq/fetch.rb +11 -12
  30. data/lib/sidekiq/job_logger.rb +45 -7
  31. data/lib/sidekiq/job_retry.rb +60 -60
  32. data/lib/sidekiq/launcher.rb +57 -51
  33. data/lib/sidekiq/logger.rb +165 -0
  34. data/lib/sidekiq/manager.rb +7 -9
  35. data/lib/sidekiq/middleware/chain.rb +14 -4
  36. data/lib/sidekiq/middleware/i18n.rb +5 -7
  37. data/lib/sidekiq/monitor.rb +133 -0
  38. data/lib/sidekiq/paginator.rb +18 -14
  39. data/lib/sidekiq/processor.rb +67 -66
  40. data/lib/sidekiq/rails.rb +23 -29
  41. data/lib/sidekiq/redis_connection.rb +31 -37
  42. data/lib/sidekiq/scheduled.rb +28 -29
  43. data/lib/sidekiq/testing.rb +34 -23
  44. data/lib/sidekiq/testing/inline.rb +2 -1
  45. data/lib/sidekiq/util.rb +17 -16
  46. data/lib/sidekiq/version.rb +2 -1
  47. data/lib/sidekiq/web.rb +41 -49
  48. data/lib/sidekiq/web/action.rb +14 -10
  49. data/lib/sidekiq/web/application.rb +64 -66
  50. data/lib/sidekiq/web/helpers.rb +83 -72
  51. data/lib/sidekiq/web/router.rb +17 -14
  52. data/lib/sidekiq/worker.rb +124 -97
  53. data/sidekiq.gemspec +16 -16
  54. data/web/assets/javascripts/dashboard.js +4 -23
  55. data/web/assets/stylesheets/application-dark.css +125 -0
  56. data/web/assets/stylesheets/application.css +9 -0
  57. data/web/locales/de.yml +14 -2
  58. data/web/locales/ja.yml +2 -1
  59. data/web/views/_job_info.erb +2 -1
  60. data/web/views/busy.erb +4 -1
  61. data/web/views/dead.erb +2 -2
  62. data/web/views/layout.erb +1 -0
  63. data/web/views/morgue.erb +4 -1
  64. data/web/views/queue.erb +10 -1
  65. data/web/views/retries.erb +4 -1
  66. data/web/views/retry.erb +2 -2
  67. data/web/views/scheduled.erb +4 -1
  68. metadata +21 -29
  69. data/.travis.yml +0 -11
  70. data/bin/sidekiqctl +0 -20
  71. data/lib/sidekiq/core_ext.rb +0 -1
  72. data/lib/sidekiq/ctl.rb +0 -221
  73. data/lib/sidekiq/logging.rb +0 -122
  74. data/lib/sidekiq/middleware/server/active_record.rb +0 -23
@@ -0,0 +1,125 @@
1
+ @media (prefers-color-scheme: dark) {
2
+
3
+ body {
4
+ background-color: #000;
5
+ color: #ccc;
6
+ }
7
+
8
+ a,
9
+ .title,
10
+ .summary_bar ul .count,
11
+ .navbar .navbar-brand {
12
+ color: #af0014;
13
+ }
14
+
15
+ .navbar .navbar-brand:hover {
16
+ color: #ccc;
17
+ }
18
+
19
+ .navbar .navbar-brand .status {
20
+ color: #ccc;
21
+ }
22
+
23
+ .navbar-inverse {
24
+ background-color: #000;
25
+ border-color: #333;
26
+ }
27
+
28
+ table.table-white {
29
+ background-color: #111;
30
+ }
31
+
32
+ .table-striped > tbody > tr:nth-of-type(odd) {
33
+ background-color: #222;
34
+ }
35
+
36
+ .table-bordered,
37
+ .table-bordered > tbody > tr > td,
38
+ .table-bordered > tbody > tr > th,
39
+ .table-bordered > tfoot > tr > td,
40
+ .table-bordered > tfoot > tr > th,
41
+ .table-bordered > thead > tr > td,
42
+ .table-bordered > thead > tr > th {
43
+ border: 1px solid #333;
44
+ }
45
+
46
+ .table-hover > tbody > tr:hover {
47
+ background-color: #333;
48
+ }
49
+
50
+ .alert {
51
+ border: none;
52
+ color: #ccc;
53
+ }
54
+
55
+ .alert-success {
56
+ background-color: #000;
57
+ }
58
+
59
+ a:link,
60
+ a:active,
61
+ a:hover,
62
+ a:visited {
63
+ color: #63798c;
64
+ }
65
+
66
+ a.btn {
67
+ color: #000;
68
+ }
69
+
70
+ .summary_bar .summary {
71
+ background-color: #000;
72
+ border: 1px solid #333;
73
+ }
74
+
75
+ .navbar-default {
76
+ background-color: #000;
77
+ border-color: #3d3d3d;
78
+ }
79
+
80
+ .navbar-default .navbar-nav > .active > a,
81
+ .navbar-default .navbar-nav > .active > a:focus,
82
+ .navbar-default .navbar-nav > .active > a:hover {
83
+ color: #ccc;
84
+ background-color: #282828;
85
+ }
86
+
87
+ .navbar-default .navbar-nav > li > a:hover {
88
+ color: #ccc;
89
+ }
90
+
91
+ .pagination > li > a,
92
+ .pagination > li > a:hover,
93
+ .pagination > li > span {
94
+ color: #ccc;
95
+ background-color: #282828;
96
+ border-color: #353535;
97
+ }
98
+ .pagination > .disabled > a,
99
+ .pagination > .disabled > a:focus,
100
+ .pagination > .disabled > a:hover,
101
+ .pagination > .disabled > span,
102
+ .pagination > .disabled > span:focus,
103
+ .pagination > .disabled > span:hover {
104
+ color: #a5a5a5;
105
+ background-color: #282828;
106
+ border-color: #353535;
107
+ }
108
+
109
+ .stat {
110
+ border: 1px solid rgba(255, 255, 255, 0.1);
111
+ }
112
+
113
+ #live-poll {
114
+ color: #ccc;
115
+ }
116
+
117
+ .btn-warn {
118
+ color: #333;
119
+ }
120
+
121
+ .rickshaw_graph .y_ticks.glow text {
122
+ fill: #ccc;
123
+ color: #ccc;
124
+ }
125
+ }
@@ -201,6 +201,15 @@ td form {
201
201
  padding: 0;
202
202
  }
203
203
 
204
+ .jobtag a {
205
+ color: white;
206
+ }
207
+
208
+ .jobtag a:hover {
209
+ color: white;
210
+ text-decoration: underline;
211
+ }
212
+
204
213
  table .table-checkbox label {
205
214
  height: 100%;
206
215
  width: 100%;
@@ -13,7 +13,7 @@ de:
13
13
  Retries: Versuche
14
14
  Enqueued: In der Warteschlange
15
15
  Worker: Arbeiter
16
- LivePoll: Live Poll
16
+ LivePoll: Echtzeitabfrage
17
17
  StopPolling: Abfrage stoppen
18
18
  Queue: Warteschlange
19
19
  Class: Klasse
@@ -33,12 +33,13 @@ de:
33
33
  NextRetry: Nächster Versuch
34
34
  RetryCount: Anzahl der Versuche
35
35
  RetryNow: Jetzt erneut versuchen
36
- Kill: Töten
36
+ Kill: Vernichten
37
37
  LastRetry: Letzter Versuch
38
38
  OriginallyFailed: Ursprünglich fehlgeschlagen
39
39
  AreYouSure: Bist du sicher?
40
40
  DeleteAll: Alle löschen
41
41
  RetryAll: Alle erneut versuchen
42
+ KillAll: Alle vernichten
42
43
  NoRetriesFound: Keine erneuten Versuche gefunden
43
44
  Error: Fehler
44
45
  ErrorClass: Fehlerklasse
@@ -67,3 +68,14 @@ de:
67
68
  Thread: Thread
68
69
  Threads: Threads
69
70
  Jobs: Jobs
71
+ Paused: Pausiert
72
+ Stop: Stopp
73
+ Quiet: Leise
74
+ StopAll: Alle stoppen
75
+ QuietAll: Alle leise
76
+ PollingInterval: Abfrageintervall
77
+ Plugins: Erweiterungen
78
+ NotYetEnqueued: Noch nicht in der Warteschlange
79
+ CreatedAt: Erstellt
80
+ BackToApp: Zurück zur Anwendung
81
+ Latency: Latenz
@@ -33,11 +33,13 @@ ja:
33
33
  NextRetry: 再試行
34
34
  RetryCount: 再試行
35
35
  RetryNow: 今すぐ再試行
36
+ Kill: 強制終了
36
37
  LastRetry: 再試行履歴
37
38
  OriginallyFailed: 失敗
38
39
  AreYouSure: よろしいですか?
39
40
  DeleteAll: 全て削除
40
41
  RetryAll: 全て再試行
42
+ KillAll: 全て強制終了
41
43
  NoRetriesFound: 再試行するジョブはありません
42
44
  Error: エラー
43
45
  ErrorClass: エラークラス
@@ -58,7 +60,6 @@ ja:
58
60
  OneMonth: 1 ヶ月
59
61
  ThreeMonths: 3 ヶ月
60
62
  SixMonths: 6 ヶ月
61
- Batches: バッチ
62
63
  Failures: 失敗
63
64
  DeadJobs: デッドジョブ
64
65
  NoDeadJobsFound: デッドジョブはありません
@@ -14,7 +14,8 @@
14
14
  <tr>
15
15
  <th><%= t('Job') %></th>
16
16
  <td>
17
- <code><%= job.display_class %></code>
17
+ <%= job.display_class %>
18
+ <%= display_tags(job) %>
18
19
  </td>
19
20
  </tr>
20
21
  <tr>
@@ -87,7 +87,10 @@
87
87
  <td>
88
88
  <a href="<%= root_path %>queues/<%= msg['queue'] %>"><%= msg['queue'] %></a>
89
89
  </td>
90
- <td><%= job.display_class %></td>
90
+ <td>
91
+ <%= job.display_class %>
92
+ <%= display_tags(job, nil) %>
93
+ </td>
91
94
  <td>
92
95
  <div class="args"><%= display_args(job.display_args) %></div>
93
96
  </td>
@@ -14,11 +14,11 @@
14
14
  <th><%= t('ErrorMessage') %></th>
15
15
  <td><%= h(@dead['error_message']) %></td>
16
16
  </tr>
17
- <% if !@dead['error_backtrace'].nil? %>
17
+ <% if @dead.error_backtrace %>
18
18
  <tr>
19
19
  <th><%= t('ErrorBacktrace') %></th>
20
20
  <td>
21
- <code><%= @dead['error_backtrace'].join("<br/>") %></code>
21
+ <code><%= @dead.error_backtrace.join("<br/>") %></code>
22
22
  </td>
23
23
  </tr>
24
24
  <% end %>
@@ -11,6 +11,7 @@
11
11
  <% end %>
12
12
 
13
13
  <link href="<%= root_path %>stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" />
14
+ <link href="<%= root_path %>stylesheets/application-dark.css" media="screen" rel="stylesheet" type="text/css" />
14
15
  <% if rtl? %>
15
16
  <link href="<%= root_path %>stylesheets/application-rtl.css" media="screen" rel="stylesheet" type="text/css" />
16
17
  <% end %>
@@ -42,7 +42,10 @@
42
42
  <td>
43
43
  <a href="<%= root_path %>queues/<%= entry.queue %>"><%= entry.queue %></a>
44
44
  </td>
45
- <td><%= entry.display_class %></td>
45
+ <td>
46
+ <%= entry.display_class %>
47
+ <%= display_tags(entry, "morgue") %>
48
+ </td>
46
49
  <td>
47
50
  <div class="args"><%= display_args(entry.display_args) %></div>
48
51
  </td>
@@ -15,13 +15,22 @@
15
15
  <div class="table_container">
16
16
  <table class="queue table table-hover table-bordered table-striped">
17
17
  <thead>
18
+ <th><a href="<%= url %>?direction=<%= params[:direction] == 'asc' ? 'desc' : 'asc' %>"># <%= sort_direction_label %></a></th>
18
19
  <th><%= t('Job') %></th>
19
20
  <th><%= t('Arguments') %></th>
20
21
  <th></th>
21
22
  </thead>
22
23
  <% @messages.each_with_index do |msg, index| %>
23
24
  <tr>
24
- <td><%= h(msg.display_class) %></td>
25
+ <% if params[:direction] == 'asc' %>
26
+ <td><%= @count * (@current_page - 1) + index + 1 %></td>
27
+ <% else %>
28
+ <td><%= @total_size - (@count * (@current_page - 1) + index) %></td>
29
+ <% end %>
30
+ <td>
31
+ <%= h(msg.display_class) %>
32
+ <%= display_tags(msg, nil) %>
33
+ </td>
25
34
  <td>
26
35
  <% a = msg.display_args %>
27
36
  <% if a.inspect.size > 100 %>
@@ -44,7 +44,10 @@
44
44
  <td>
45
45
  <a href="<%= root_path %>queues/<%= entry.queue %>"><%= entry.queue %></a>
46
46
  </td>
47
- <td><%= entry.display_class %></td>
47
+ <td>
48
+ <%= entry.display_class %>
49
+ <%= display_tags(entry, "retries") %>
50
+ </td>
48
51
  <td>
49
52
  <div class="args"><%= display_args(entry.display_args) %></div>
50
53
  </td>
@@ -14,11 +14,11 @@
14
14
  <th><%= t('ErrorMessage') %></th>
15
15
  <td><%= h(@retry['error_message']) %></td>
16
16
  </tr>
17
- <% if !@retry['error_backtrace'].nil? %>
17
+ <% if @retry.error_backtrace %>
18
18
  <tr>
19
19
  <th><%= t('ErrorBacktrace') %></th>
20
20
  <td>
21
- <code><%= @retry['error_backtrace'].join("<br/>") %></code>
21
+ <code><%= @retry.error_backtrace.join("<br/>") %></code>
22
22
  </td>
23
23
  </tr>
24
24
  <% end %>
@@ -38,7 +38,10 @@
38
38
  <td>
39
39
  <a href="<%= root_path %>queues/<%= entry.queue %>"><%= entry.queue %></a>
40
40
  </td>
41
- <td><%= entry.display_class %></td>
41
+ <td>
42
+ <%= entry.display_class %>
43
+ <%= display_tags(entry, "scheduled") %>
44
+ </td>
42
45
  <td>
43
46
  <div class="args"><%= display_args(entry.display_args) %></div>
44
47
  </td>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.6
4
+ version: 6.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Perham
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-12 00:00:00.000000000 Z
11
+ date: 2019-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis
@@ -16,27 +16,18 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 3.3.5
20
- - - "<"
21
- - !ruby/object:Gem::Version
22
- version: '5'
19
+ version: 4.1.0
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
24
  - - ">="
28
25
  - !ruby/object:Gem::Version
29
- version: 3.3.5
30
- - - "<"
31
- - !ruby/object:Gem::Version
32
- version: '5'
26
+ version: 4.1.0
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: connection_pool
35
29
  requirement: !ruby/object:Gem::Requirement
36
30
  requirements:
37
- - - "~>"
38
- - !ruby/object:Gem::Version
39
- version: '2.2'
40
31
  - - ">="
41
32
  - !ruby/object:Gem::Version
42
33
  version: 2.2.2
@@ -44,9 +35,6 @@ dependencies:
44
35
  prerelease: false
45
36
  version_requirements: !ruby/object:Gem::Requirement
46
37
  requirements:
47
- - - "~>"
48
- - !ruby/object:Gem::Version
49
- version: '2.2'
50
38
  - - ">="
51
39
  - !ruby/object:Gem::Version
52
40
  version: 2.2.2
@@ -56,58 +44,63 @@ dependencies:
56
44
  requirements:
57
45
  - - ">="
58
46
  - !ruby/object:Gem::Version
59
- version: 1.5.0
47
+ version: 2.0.0
60
48
  type: :runtime
61
49
  prerelease: false
62
50
  version_requirements: !ruby/object:Gem::Requirement
63
51
  requirements:
64
52
  - - ">="
65
53
  - !ruby/object:Gem::Version
66
- version: 1.5.0
54
+ version: 2.0.0
67
55
  - !ruby/object:Gem::Dependency
68
56
  name: rack-protection
69
57
  requirement: !ruby/object:Gem::Requirement
70
58
  requirements:
71
59
  - - ">="
72
60
  - !ruby/object:Gem::Version
73
- version: 1.5.0
61
+ version: 2.0.0
74
62
  type: :runtime
75
63
  prerelease: false
76
64
  version_requirements: !ruby/object:Gem::Requirement
77
65
  requirements:
78
66
  - - ">="
79
67
  - !ruby/object:Gem::Version
80
- version: 1.5.0
68
+ version: 2.0.0
81
69
  description: Simple, efficient background processing for Ruby.
82
70
  email:
83
71
  - mperham@gmail.com
84
72
  executables:
85
73
  - sidekiq
86
- - sidekiqctl
74
+ - sidekiqmon
87
75
  extensions: []
88
76
  extra_rdoc_files: []
89
77
  files:
78
+ - ".circleci/config.yml"
90
79
  - ".github/contributing.md"
91
80
  - ".github/issue_template.md"
92
81
  - ".gitignore"
93
- - ".travis.yml"
82
+ - ".standard.yml"
94
83
  - 3.0-Upgrade.md
95
84
  - 4.0-Upgrade.md
96
85
  - 5.0-Upgrade.md
86
+ - 6.0-Upgrade.md
97
87
  - COMM-LICENSE
98
88
  - Changes.md
89
+ - Ent-2.0-Upgrade.md
99
90
  - Ent-Changes.md
100
91
  - Gemfile
92
+ - Gemfile.lock
101
93
  - LICENSE
102
94
  - Pro-2.0-Upgrade.md
103
95
  - Pro-3.0-Upgrade.md
104
96
  - Pro-4.0-Upgrade.md
97
+ - Pro-5.0-Upgrade.md
105
98
  - Pro-Changes.md
106
99
  - README.md
107
100
  - Rakefile
108
101
  - bin/sidekiq
109
- - bin/sidekiqctl
110
102
  - bin/sidekiqload
103
+ - bin/sidekiqmon
111
104
  - code_of_conduct.md
112
105
  - lib/generators/sidekiq/templates/worker.rb.erb
113
106
  - lib/generators/sidekiq/templates/worker_spec.rb.erb
@@ -117,8 +110,6 @@ files:
117
110
  - lib/sidekiq/api.rb
118
111
  - lib/sidekiq/cli.rb
119
112
  - lib/sidekiq/client.rb
120
- - lib/sidekiq/core_ext.rb
121
- - lib/sidekiq/ctl.rb
122
113
  - lib/sidekiq/delay.rb
123
114
  - lib/sidekiq/exception_handler.rb
124
115
  - lib/sidekiq/extensions/action_mailer.rb
@@ -129,11 +120,11 @@ files:
129
120
  - lib/sidekiq/job_logger.rb
130
121
  - lib/sidekiq/job_retry.rb
131
122
  - lib/sidekiq/launcher.rb
132
- - lib/sidekiq/logging.rb
123
+ - lib/sidekiq/logger.rb
133
124
  - lib/sidekiq/manager.rb
134
125
  - lib/sidekiq/middleware/chain.rb
135
126
  - lib/sidekiq/middleware/i18n.rb
136
- - lib/sidekiq/middleware/server/active_record.rb
127
+ - lib/sidekiq/monitor.rb
137
128
  - lib/sidekiq/paginator.rb
138
129
  - lib/sidekiq/processor.rb
139
130
  - lib/sidekiq/rails.rb
@@ -155,6 +146,7 @@ files:
155
146
  - web/assets/images/status.png
156
147
  - web/assets/javascripts/application.js
157
148
  - web/assets/javascripts/dashboard.js
149
+ - web/assets/stylesheets/application-dark.css
158
150
  - web/assets/stylesheets/application-rtl.css
159
151
  - web/assets/stylesheets/application.css
160
152
  - web/assets/stylesheets/bootstrap-rtl.min.css
@@ -215,14 +207,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
215
207
  requirements:
216
208
  - - ">="
217
209
  - !ruby/object:Gem::Version
218
- version: 2.2.2
210
+ version: 2.5.0
219
211
  required_rubygems_version: !ruby/object:Gem::Requirement
220
212
  requirements:
221
213
  - - ">="
222
214
  - !ruby/object:Gem::Version
223
215
  version: '0'
224
216
  requirements: []
225
- rubygems_version: 3.0.1
217
+ rubygems_version: 3.0.3
226
218
  signing_key:
227
219
  specification_version: 4
228
220
  summary: Simple, efficient background processing for Ruby