sidekiq 6.0.0 → 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.
- checksums.yaml +4 -4
- data/.circleci/config.yml +21 -0
- data/6.0-Upgrade.md +3 -1
- data/Changes.md +88 -1
- data/Ent-Changes.md +6 -0
- data/Gemfile.lock +3 -3
- data/Pro-Changes.md +9 -1
- data/README.md +3 -1
- data/bin/sidekiqload +8 -4
- data/bin/sidekiqmon +4 -5
- data/lib/generators/sidekiq/worker_generator.rb +10 -0
- data/lib/sidekiq/api.rb +117 -88
- data/lib/sidekiq/cli.rb +19 -17
- data/lib/sidekiq/client.rb +12 -2
- data/lib/sidekiq/fetch.rb +7 -7
- data/lib/sidekiq/job_logger.rb +11 -3
- data/lib/sidekiq/job_retry.rb +21 -8
- data/lib/sidekiq/launcher.rb +1 -3
- data/lib/sidekiq/logger.rb +107 -11
- data/lib/sidekiq/middleware/chain.rb +11 -2
- data/lib/sidekiq/monitor.rb +1 -16
- data/lib/sidekiq/paginator.rb +7 -2
- data/lib/sidekiq/processor.rb +17 -19
- data/lib/sidekiq/scheduled.rb +13 -12
- data/lib/sidekiq/testing.rb +12 -0
- data/lib/sidekiq/util.rb +0 -2
- data/lib/sidekiq/version.rb +1 -1
- data/lib/sidekiq/web/application.rb +8 -13
- data/lib/sidekiq/web/helpers.rb +22 -10
- data/lib/sidekiq/worker.rb +4 -4
- data/lib/sidekiq.rb +8 -0
- data/sidekiq.gemspec +1 -1
- data/web/assets/javascripts/dashboard.js +2 -2
- data/web/assets/stylesheets/application-dark.css +125 -0
- data/web/assets/stylesheets/application.css +9 -0
- data/web/locales/de.yml +14 -2
- data/web/views/_job_info.erb +2 -1
- data/web/views/busy.erb +4 -1
- data/web/views/dead.erb +2 -2
- data/web/views/layout.erb +1 -0
- data/web/views/morgue.erb +4 -1
- data/web/views/queue.erb +10 -1
- data/web/views/retries.erb +4 -1
- data/web/views/retry.erb +2 -2
- data/web/views/scheduled.erb +4 -1
- metadata +5 -4
@@ -27,7 +27,7 @@ var realtimeGraph = function(updatePath) {
|
|
27
27
|
renderer: 'line',
|
28
28
|
interpolation: 'linear',
|
29
29
|
|
30
|
-
series: new Rickshaw.Series.FixedDuration([{ name: graphElement.dataset.failedLabel, color: '#
|
30
|
+
series: new Rickshaw.Series.FixedDuration([{ name: graphElement.dataset.failedLabel, color: '#af0014' }, { name: graphElement.dataset.processedLabel, color: '#006f68' }], undefined, {
|
31
31
|
timeInterval: timeInterval,
|
32
32
|
maxDataPoints: 100,
|
33
33
|
})
|
@@ -125,7 +125,7 @@ var historyGraph = function() {
|
|
125
125
|
interpolation: 'linear',
|
126
126
|
series: [
|
127
127
|
{
|
128
|
-
color: "#
|
128
|
+
color: "#af0014",
|
129
129
|
data: failed,
|
130
130
|
name: graphElement.dataset.failedLabel
|
131
131
|
}, {
|
@@ -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
|
+
}
|
data/web/locales/de.yml
CHANGED
@@ -13,7 +13,7 @@ de:
|
|
13
13
|
Retries: Versuche
|
14
14
|
Enqueued: In der Warteschlange
|
15
15
|
Worker: Arbeiter
|
16
|
-
LivePoll:
|
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:
|
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
|
data/web/views/_job_info.erb
CHANGED
data/web/views/busy.erb
CHANGED
@@ -87,7 +87,10 @@
|
|
87
87
|
<td>
|
88
88
|
<a href="<%= root_path %>queues/<%= msg['queue'] %>"><%= msg['queue'] %></a>
|
89
89
|
</td>
|
90
|
-
<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>
|
data/web/views/dead.erb
CHANGED
@@ -14,11 +14,11 @@
|
|
14
14
|
<th><%= t('ErrorMessage') %></th>
|
15
15
|
<td><%= h(@dead['error_message']) %></td>
|
16
16
|
</tr>
|
17
|
-
<% if
|
17
|
+
<% if @dead.error_backtrace %>
|
18
18
|
<tr>
|
19
19
|
<th><%= t('ErrorBacktrace') %></th>
|
20
20
|
<td>
|
21
|
-
<code><%= @dead
|
21
|
+
<code><%= @dead.error_backtrace.join("<br/>") %></code>
|
22
22
|
</td>
|
23
23
|
</tr>
|
24
24
|
<% end %>
|
data/web/views/layout.erb
CHANGED
@@ -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 %>
|
data/web/views/morgue.erb
CHANGED
@@ -42,7 +42,10 @@
|
|
42
42
|
<td>
|
43
43
|
<a href="<%= root_path %>queues/<%= entry.queue %>"><%= entry.queue %></a>
|
44
44
|
</td>
|
45
|
-
<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>
|
data/web/views/queue.erb
CHANGED
@@ -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
|
-
|
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 %>
|
data/web/views/retries.erb
CHANGED
@@ -44,7 +44,10 @@
|
|
44
44
|
<td>
|
45
45
|
<a href="<%= root_path %>queues/<%= entry.queue %>"><%= entry.queue %></a>
|
46
46
|
</td>
|
47
|
-
<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>
|
data/web/views/retry.erb
CHANGED
@@ -14,11 +14,11 @@
|
|
14
14
|
<th><%= t('ErrorMessage') %></th>
|
15
15
|
<td><%= h(@retry['error_message']) %></td>
|
16
16
|
</tr>
|
17
|
-
<% if
|
17
|
+
<% if @retry.error_backtrace %>
|
18
18
|
<tr>
|
19
19
|
<th><%= t('ErrorBacktrace') %></th>
|
20
20
|
<td>
|
21
|
-
<code><%= @retry
|
21
|
+
<code><%= @retry.error_backtrace.join("<br/>") %></code>
|
22
22
|
</td>
|
23
23
|
</tr>
|
24
24
|
<% end %>
|
data/web/views/scheduled.erb
CHANGED
@@ -38,7 +38,10 @@
|
|
38
38
|
<td>
|
39
39
|
<a href="<%= root_path %>queues/<%= entry.queue %>"><%= entry.queue %></a>
|
40
40
|
</td>
|
41
|
-
<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: 6.0.
|
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-
|
11
|
+
date: 2019-10-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redis
|
@@ -71,6 +71,7 @@ email:
|
|
71
71
|
- mperham@gmail.com
|
72
72
|
executables:
|
73
73
|
- sidekiq
|
74
|
+
- sidekiqmon
|
74
75
|
extensions: []
|
75
76
|
extra_rdoc_files: []
|
76
77
|
files:
|
@@ -145,6 +146,7 @@ files:
|
|
145
146
|
- web/assets/images/status.png
|
146
147
|
- web/assets/javascripts/application.js
|
147
148
|
- web/assets/javascripts/dashboard.js
|
149
|
+
- web/assets/stylesheets/application-dark.css
|
148
150
|
- web/assets/stylesheets/application-rtl.css
|
149
151
|
- web/assets/stylesheets/application.css
|
150
152
|
- web/assets/stylesheets/bootstrap-rtl.min.css
|
@@ -212,8 +214,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
212
214
|
- !ruby/object:Gem::Version
|
213
215
|
version: '0'
|
214
216
|
requirements: []
|
215
|
-
|
216
|
-
rubygems_version: 2.7.6
|
217
|
+
rubygems_version: 3.0.3
|
217
218
|
signing_key:
|
218
219
|
specification_version: 4
|
219
220
|
summary: Simple, efficient background processing for Ruby
|