sidekiq 5.2.7 → 6.0.3

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 (74) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +21 -0
  3. data/.gitignore +0 -2
  4. data/.standard.yml +20 -0
  5. data/6.0-Upgrade.md +72 -0
  6. data/Changes.md +121 -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 +18 -30
  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 +20 -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.7
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-22 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,34 +44,34 @@ 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:
@@ -91,24 +79,28 @@ files:
91
79
  - ".github/contributing.md"
92
80
  - ".github/issue_template.md"
93
81
  - ".gitignore"
94
- - ".travis.yml"
82
+ - ".standard.yml"
95
83
  - 3.0-Upgrade.md
96
84
  - 4.0-Upgrade.md
97
85
  - 5.0-Upgrade.md
86
+ - 6.0-Upgrade.md
98
87
  - COMM-LICENSE
99
88
  - Changes.md
89
+ - Ent-2.0-Upgrade.md
100
90
  - Ent-Changes.md
101
91
  - Gemfile
92
+ - Gemfile.lock
102
93
  - LICENSE
103
94
  - Pro-2.0-Upgrade.md
104
95
  - Pro-3.0-Upgrade.md
105
96
  - Pro-4.0-Upgrade.md
97
+ - Pro-5.0-Upgrade.md
106
98
  - Pro-Changes.md
107
99
  - README.md
108
100
  - Rakefile
109
101
  - bin/sidekiq
110
- - bin/sidekiqctl
111
102
  - bin/sidekiqload
103
+ - bin/sidekiqmon
112
104
  - code_of_conduct.md
113
105
  - lib/generators/sidekiq/templates/worker.rb.erb
114
106
  - lib/generators/sidekiq/templates/worker_spec.rb.erb
@@ -118,8 +110,6 @@ files:
118
110
  - lib/sidekiq/api.rb
119
111
  - lib/sidekiq/cli.rb
120
112
  - lib/sidekiq/client.rb
121
- - lib/sidekiq/core_ext.rb
122
- - lib/sidekiq/ctl.rb
123
113
  - lib/sidekiq/delay.rb
124
114
  - lib/sidekiq/exception_handler.rb
125
115
  - lib/sidekiq/extensions/action_mailer.rb
@@ -130,11 +120,11 @@ files:
130
120
  - lib/sidekiq/job_logger.rb
131
121
  - lib/sidekiq/job_retry.rb
132
122
  - lib/sidekiq/launcher.rb
133
- - lib/sidekiq/logging.rb
123
+ - lib/sidekiq/logger.rb
134
124
  - lib/sidekiq/manager.rb
135
125
  - lib/sidekiq/middleware/chain.rb
136
126
  - lib/sidekiq/middleware/i18n.rb
137
- - lib/sidekiq/middleware/server/active_record.rb
127
+ - lib/sidekiq/monitor.rb
138
128
  - lib/sidekiq/paginator.rb
139
129
  - lib/sidekiq/processor.rb
140
130
  - lib/sidekiq/rails.rb
@@ -156,6 +146,7 @@ files:
156
146
  - web/assets/images/status.png
157
147
  - web/assets/javascripts/application.js
158
148
  - web/assets/javascripts/dashboard.js
149
+ - web/assets/stylesheets/application-dark.css
159
150
  - web/assets/stylesheets/application-rtl.css
160
151
  - web/assets/stylesheets/application.css
161
152
  - web/assets/stylesheets/bootstrap-rtl.min.css
@@ -216,14 +207,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
216
207
  requirements:
217
208
  - - ">="
218
209
  - !ruby/object:Gem::Version
219
- version: 2.2.2
210
+ version: 2.5.0
220
211
  required_rubygems_version: !ruby/object:Gem::Requirement
221
212
  requirements:
222
213
  - - ">="
223
214
  - !ruby/object:Gem::Version
224
215
  version: '0'
225
216
  requirements: []
226
- rubygems_version: 3.0.1
217
+ rubygems_version: 3.0.3
227
218
  signing_key:
228
219
  specification_version: 4
229
220
  summary: Simple, efficient background processing for Ruby