sidekiq 7.0.2 → 7.0.5
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 +4 -4
- data/Changes.md +30 -9
- data/README.md +29 -22
- data/bin/sidekiqload +186 -109
- data/bin/sidekiqmon +3 -0
- data/lib/sidekiq/api.rb +31 -4
- data/lib/sidekiq/capsule.rb +17 -0
- data/lib/sidekiq/cli.rb +3 -2
- data/lib/sidekiq/component.rb +2 -0
- data/lib/sidekiq/config.rb +1 -1
- data/lib/sidekiq/embedded.rb +1 -1
- data/lib/sidekiq/fetch.rb +2 -4
- data/lib/sidekiq/job_retry.rb +1 -1
- data/lib/sidekiq/job_util.rb +61 -13
- data/lib/sidekiq/launcher.rb +10 -7
- data/lib/sidekiq/metrics/tracking.rb +2 -0
- data/lib/sidekiq/middleware/chain.rb +12 -9
- data/lib/sidekiq/middleware/current_attributes.rb +5 -7
- data/lib/sidekiq/monitor.rb +1 -3
- data/lib/sidekiq/processor.rb +4 -1
- data/lib/sidekiq/rails.rb +2 -1
- data/lib/sidekiq/version.rb +1 -1
- data/lib/sidekiq/web/application.rb +20 -5
- data/lib/sidekiq/web/helpers.rb +10 -2
- data/sidekiq.gemspec +9 -21
- data/web/assets/javascripts/metrics.js +30 -2
- data/web/assets/stylesheets/application.css +1 -1
- data/web/locales/da.yml +11 -4
- data/web/views/_footer.erb +2 -2
- data/web/views/_job_info.erb +2 -2
- data/web/views/_metrics_period_select.erb +12 -0
- data/web/views/_paging.erb +2 -0
- data/web/views/busy.erb +24 -26
- data/web/views/metrics.erb +6 -4
- data/web/views/metrics_for_job.erb +9 -7
- data/web/views/morgue.erb +4 -8
- data/web/views/queue.erb +10 -14
- data/web/views/queues.erb +3 -1
- data/web/views/retries.erb +4 -8
- data/web/views/scheduled.erb +12 -13
- metadata +14 -24
data/web/views/_job_info.erb
CHANGED
@@ -0,0 +1,12 @@
|
|
1
|
+
<div>
|
2
|
+
<select class="form-control" onchange="window.location.href = '<%= path %>?period=' + event.target.value">
|
3
|
+
<% periods.each_key do |code| %>
|
4
|
+
|
5
|
+
<% if code == period %>
|
6
|
+
<option selected value="<%= code %>"><%= code %></option>
|
7
|
+
<% else %>
|
8
|
+
<option value="<%= code %>"><%= code %></option>
|
9
|
+
<% end %>
|
10
|
+
<% end %>
|
11
|
+
</select>
|
12
|
+
</div>
|
data/web/views/_paging.erb
CHANGED
data/web/views/busy.erb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
|
-
<div class="
|
2
|
-
<
|
3
|
-
<h3><%= t('Status') %></h3>
|
4
|
-
</div>
|
1
|
+
<div class="header-container">
|
2
|
+
<h1><%= t('Status') %></h1>
|
5
3
|
</div>
|
6
4
|
|
7
5
|
<div class="stats-wrapper">
|
@@ -29,11 +27,9 @@
|
|
29
27
|
</div>
|
30
28
|
</div>
|
31
29
|
|
32
|
-
<div class="
|
33
|
-
<
|
34
|
-
|
35
|
-
</div>
|
36
|
-
<div class="col-sm-3 pull-right flip">
|
30
|
+
<div class="header-container">
|
31
|
+
<h1><%= t('Processes') %></h1>
|
32
|
+
<div>
|
37
33
|
<form method="POST" class="warning-messages">
|
38
34
|
<%= csrf_tag %>
|
39
35
|
<div class="btn-group pull-right flip">
|
@@ -43,12 +39,13 @@
|
|
43
39
|
</form>
|
44
40
|
</div>
|
45
41
|
</div>
|
42
|
+
|
46
43
|
<div class="table_container">
|
47
44
|
<table class="processes table table-hover table-bordered table-striped">
|
48
45
|
<thead>
|
49
46
|
<th><%= t('Name') %></th>
|
50
47
|
<th><%= t('Started') %></th>
|
51
|
-
<th class="col-sm-1"><%= t('RSS') %><a target="blank" href="https://github.com/
|
48
|
+
<th class="col-sm-1"><%= t('RSS') %><a target="blank" href="https://github.com/sidekiq/sidekiq/wiki/Memory#rss"><span class="info-circle" title="Click to learn more about RSS">?</span></a></th>
|
52
49
|
<th class="col-sm-1"><%= t('Threads') %></th>
|
53
50
|
<th class="col-sm-1"><%= t('Busy') %></th>
|
54
51
|
<th> </th>
|
@@ -62,6 +59,9 @@
|
|
62
59
|
<% process.labels.each do |label| %>
|
63
60
|
<span class="label label-info"><%= label %></span>
|
64
61
|
<% end %>
|
62
|
+
<% if process.embedded? %>
|
63
|
+
<span class="label label-default">embedded</span>
|
64
|
+
<% end %>
|
65
65
|
<% if process.stopping? %>
|
66
66
|
<span class="label label-danger">quiet</span>
|
67
67
|
<% end %>
|
@@ -71,7 +71,7 @@
|
|
71
71
|
<br>
|
72
72
|
<b><%= "#{t('Queues')}: " %></b>
|
73
73
|
<% if process.weights %>
|
74
|
-
<%= process.weights
|
74
|
+
<%= busy_weights(process.weights) %>
|
75
75
|
<% else %>
|
76
76
|
<%= process.queues.sort.join(", ") %>
|
77
77
|
<% end %>
|
@@ -90,29 +90,27 @@
|
|
90
90
|
<td><%= process['concurrency'] %></td>
|
91
91
|
<td><%= process['busy'] %></td>
|
92
92
|
<td>
|
93
|
-
|
94
|
-
|
95
|
-
|
93
|
+
<% unless process.embedded? %>
|
94
|
+
<form method="POST">
|
95
|
+
<%= csrf_tag %>
|
96
|
+
<input type="hidden" name="identity" value="<%= process['identity'] %>"/>
|
96
97
|
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
98
|
+
<div class="btn-group pull-right flip">
|
99
|
+
<% unless process.stopping? %><button class="btn btn-xs btn-warn" type="submit" name="quiet" value="1"><%= t('Quiet') %></button><% end %>
|
100
|
+
<button class="btn btn-xs btn-danger" type="submit" name="stop" value="1"><%= t('Stop') %></button>
|
101
|
+
</div>
|
102
|
+
</form>
|
103
|
+
<% end %>
|
102
104
|
</td>
|
103
105
|
</tr>
|
104
106
|
<% end %>
|
105
107
|
</table>
|
106
108
|
</div>
|
107
109
|
|
108
|
-
<div class="
|
109
|
-
<
|
110
|
-
<h3><%= t('Jobs') %></h3>
|
111
|
-
</div>
|
110
|
+
<div class="header-container">
|
111
|
+
<h1><%= t('Jobs') %></h1>
|
112
112
|
<% if @workset.size > 0 && @total_size > @count %>
|
113
|
-
|
114
|
-
<%= erb :_paging, locals: { url: "#{root_path}busy" } %>
|
115
|
-
</div>
|
113
|
+
<%= erb :_paging, locals: { url: "#{root_path}busy" } %>
|
116
114
|
<% end %>
|
117
115
|
</div>
|
118
116
|
|
data/web/views/metrics.erb
CHANGED
@@ -4,11 +4,13 @@
|
|
4
4
|
<script type="text/javascript" src="<%= root_path %>javascripts/metrics.js"></script>
|
5
5
|
|
6
6
|
<div class="header-container">
|
7
|
-
<
|
7
|
+
<div class="page-title-container">
|
8
|
+
<h1><%= t('Metrics') %></h1>
|
8
9
|
|
9
|
-
|
10
|
-
<a target="blank" href="https://github.com/mperham/sidekiq/wiki/Metrics"><span class="info-circle" title="Click to learn more about metrics">?</span></a>
|
10
|
+
<a target="blank" href="https://github.com/sidekiq/sidekiq/wiki/Metrics"><span class="info-circle" title="Click to learn more about metrics">?</span></a>
|
11
11
|
</div>
|
12
|
+
|
13
|
+
<%= erb :_metrics_period_select, locals: { periods: @periods, period: @period, path: "#{root_path}metrics" } %>
|
12
14
|
</div>
|
13
15
|
|
14
16
|
<%
|
@@ -60,7 +62,7 @@
|
|
60
62
|
value="<%= kls %>"
|
61
63
|
<%= visible_kls.include?(kls) ? 'checked' : '' %>
|
62
64
|
/>
|
63
|
-
<code><a href="<%= root_path %>metrics/<%= kls %>"><%= kls %></a></code>
|
65
|
+
<code><a href="<%= root_path %>metrics/<%= kls %>?period=<%= @period %>"><%= kls %></a></code>
|
64
66
|
</div>
|
65
67
|
<script>jobMetricsChart.registerSwatch("<%= id %>")</script>
|
66
68
|
</td>
|
@@ -15,14 +15,16 @@
|
|
15
15
|
|
16
16
|
<% if job_result.totals["s"] > 0 %>
|
17
17
|
<div class="header-container">
|
18
|
-
<
|
19
|
-
<
|
20
|
-
|
21
|
-
|
18
|
+
<div class="page-title-container">
|
19
|
+
<h1>
|
20
|
+
<a href="<%= root_path %>metrics?period=<%= @period %>"><%= t('Metrics') %></a> /
|
21
|
+
<%= h @name %>
|
22
|
+
</h1>
|
22
23
|
|
23
|
-
|
24
|
-
<a target="blank" href="https://github.com/mperham/sidekiq/wiki/Metrics"><span class="info-circle" title="Click to learn more about metrics">?</span></a>
|
24
|
+
<a target="blank" href="https://github.com/sidekiq/sidekiq/wiki/Metrics"><span class="info-circle" title="Click to learn more about metrics">?</span></a>
|
25
25
|
</div>
|
26
|
+
|
27
|
+
<%= erb :_metrics_period_select, locals: { periods: @periods, period: @period, path: "#{root_path}metrics/#{@name}" } %>
|
26
28
|
</div>
|
27
29
|
|
28
30
|
<canvas id="hist-totals-chart"></canvas>
|
@@ -61,7 +63,7 @@
|
|
61
63
|
<p><small>Data from <%= @query_result.starts_at %> to <%= @query_result.ends_at %></small></p>
|
62
64
|
<% else %>
|
63
65
|
<h1>
|
64
|
-
<a href="<%= root_path %>/metrics"><%= t(
|
66
|
+
<a href="<%= root_path %>/metrics"><%= t('Metrics') %></a> /
|
65
67
|
<%= h @name %>
|
66
68
|
</h1>
|
67
69
|
|
data/web/views/morgue.erb
CHANGED
@@ -1,14 +1,10 @@
|
|
1
|
-
<
|
2
|
-
<
|
3
|
-
<h3><%= t('DeadJobs') %></h3>
|
4
|
-
</div>
|
1
|
+
<div class="header-container">
|
2
|
+
<h1><%= t('DeadJobs') %></h1>
|
5
3
|
<% if @dead.size > 0 && @total_size > @count %>
|
6
|
-
|
7
|
-
<%= erb :_paging, locals: { url: "#{root_path}morgue" } %>
|
8
|
-
</div>
|
4
|
+
<%= erb :_paging, locals: { url: "#{root_path}morgue" } %>
|
9
5
|
<% end %>
|
10
6
|
<%= filtering('dead') %>
|
11
|
-
</
|
7
|
+
</div>
|
12
8
|
|
13
9
|
<% if @dead.size > 0 %>
|
14
10
|
<form action="<%= root_path %>morgue" method="post">
|
data/web/views/queue.erb
CHANGED
@@ -1,17 +1,13 @@
|
|
1
|
-
<
|
2
|
-
<
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
<div class="col-sm-4 pull-right flip">
|
12
|
-
<%= erb :_paging, locals: { url: "#{root_path}queues/#{CGI.escape(@name)}" } %>
|
13
|
-
</div>
|
14
|
-
</header>
|
1
|
+
<div class="header-container">
|
2
|
+
<h1><%= t('CurrentMessagesInQueue', :queue => h(@name)) %>
|
3
|
+
<% if @queue.paused? %>
|
4
|
+
<span class="label label-danger"><%= t('Paused') %></span>
|
5
|
+
<% end %>
|
6
|
+
<span class="badge badge-secondary"><%= number_with_delimiter(@total_size) %></span>
|
7
|
+
</h1>
|
8
|
+
<%= erb :_paging, locals: { url: "#{root_path}queues/#{CGI.escape(@name)}" } %>
|
9
|
+
</div>
|
10
|
+
|
15
11
|
<div class="table_container">
|
16
12
|
<table class="queue table table-hover table-bordered table-striped">
|
17
13
|
<thead>
|
data/web/views/queues.erb
CHANGED
data/web/views/retries.erb
CHANGED
@@ -1,14 +1,10 @@
|
|
1
|
-
<
|
2
|
-
<
|
3
|
-
<h3><%= t('Retries') %></h3>
|
4
|
-
</div>
|
1
|
+
<div class="header-container">
|
2
|
+
<h1><%= t('Retries') %></h1>
|
5
3
|
<% if @retries.size > 0 && @total_size > @count %>
|
6
|
-
|
7
|
-
<%= erb :_paging, locals: { url: "#{root_path}retries" } %>
|
8
|
-
</div>
|
4
|
+
<%= erb :_paging, locals: { url: "#{root_path}retries" } %>
|
9
5
|
<% end %>
|
10
6
|
<%= filtering('retries') %>
|
11
|
-
</
|
7
|
+
</div>
|
12
8
|
|
13
9
|
<% if @retries.size > 0 %>
|
14
10
|
<form action="<%= root_path %>retries" method="post">
|
data/web/views/scheduled.erb
CHANGED
@@ -1,25 +1,22 @@
|
|
1
|
-
<
|
2
|
-
<
|
3
|
-
<h3><%= t('ScheduledJobs') %></h3>
|
4
|
-
</div>
|
1
|
+
<div class="header-container">
|
2
|
+
<h1><%= t('ScheduledJobs') %></h1>
|
5
3
|
<% if @scheduled.size > 0 && @total_size > @count %>
|
6
|
-
|
7
|
-
<%= erb :_paging, locals: { url: "#{root_path}scheduled" } %>
|
8
|
-
</div>
|
4
|
+
<%= erb :_paging, locals: { url: "#{root_path}scheduled" } %>
|
9
5
|
<% end %>
|
10
6
|
<%= filtering('scheduled') %>
|
11
|
-
</
|
7
|
+
</div>
|
12
8
|
|
13
9
|
<% if @scheduled.size > 0 %>
|
14
|
-
|
15
10
|
<form action="<%= root_path %>scheduled" method="post">
|
16
11
|
<%= csrf_tag %>
|
17
12
|
<div class="table_container">
|
18
13
|
<table class="table table-striped table-bordered table-hover">
|
19
14
|
<thead>
|
20
15
|
<tr>
|
21
|
-
<th class="checkbox-column">
|
22
|
-
<
|
16
|
+
<th class="table-checkbox checkbox-column">
|
17
|
+
<label>
|
18
|
+
<input type="checkbox" class="check_all" />
|
19
|
+
</label>
|
23
20
|
</th>
|
24
21
|
<th><%= t('When') %></th>
|
25
22
|
<th><%= t('Queue') %></th>
|
@@ -29,8 +26,10 @@
|
|
29
26
|
</thead>
|
30
27
|
<% @scheduled.each do |entry| %>
|
31
28
|
<tr>
|
32
|
-
<td>
|
33
|
-
<
|
29
|
+
<td class="table-checkbox">
|
30
|
+
<label>
|
31
|
+
<input type='checkbox' name='key[]' value='<%= job_params(entry.item, entry.score) %>' class='shift_clickable' />
|
32
|
+
</label>
|
34
33
|
</td>
|
35
34
|
<td>
|
36
35
|
<a href="<%= root_path %>scheduled/<%= job_params(entry.item, entry.score) %>"><%= relative_time(entry.at) %></a>
|
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: 7.0.
|
4
|
+
version: 7.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Perham
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-02-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redis-client
|
@@ -68,7 +68,7 @@ dependencies:
|
|
68
68
|
version: '2'
|
69
69
|
description: Simple, efficient background processing for Ruby.
|
70
70
|
email:
|
71
|
-
-
|
71
|
+
- info@contribsys.com
|
72
72
|
executables:
|
73
73
|
- sidekiq
|
74
74
|
- sidekiqmon
|
@@ -177,6 +177,7 @@ files:
|
|
177
177
|
- web/locales/zh-tw.yml
|
178
178
|
- web/views/_footer.erb
|
179
179
|
- web/views/_job_info.erb
|
180
|
+
- web/views/_metrics_period_select.erb
|
180
181
|
- web/views/_nav.erb
|
181
182
|
- web/views/_paging.erb
|
182
183
|
- web/views/_poll_link.erb
|
@@ -200,30 +201,18 @@ licenses:
|
|
200
201
|
- LGPL-3.0
|
201
202
|
metadata:
|
202
203
|
homepage_uri: https://sidekiq.org
|
203
|
-
bug_tracker_uri: https://github.com/
|
204
|
-
documentation_uri: https://github.com/
|
205
|
-
changelog_uri: https://github.com/
|
206
|
-
source_code_uri: https://github.com/
|
207
|
-
post_install_message: |2
|
208
|
-
|
209
|
-
####################################################
|
210
|
-
|
211
|
-
|
212
|
-
█████████ █████ ██████████ ██████████ █████ ████ █████ ██████ ██████████ █████
|
213
|
-
███░░░░░███░░███ ░░███░░░░███ ░░███░░░░░█░░███ ███░ ░░███ ███░░░░███ ░███░░░░███ ███░░░███
|
214
|
-
░███ ░░░ ░███ ░███ ░░███ ░███ █ ░ ░███ ███ ░███ ███ ░░███ ░░░ ███ ███ ░░███
|
215
|
-
░░█████████ ░███ ░███ ░███ ░██████ ░███████ ░███ ░███ ░███ ███ ░███ ░███
|
216
|
-
░░░░░░░░███ ░███ ░███ ░███ ░███░░█ ░███░░███ ░███ ░███ ██░███ ███ ░███ ░███
|
217
|
-
███ ░███ ░███ ░███ ███ ░███ ░ █ ░███ ░░███ ░███ ░░███ ░░████ ███ ░░███ ███
|
218
|
-
░░█████████ █████ ██████████ ██████████ █████ ░░████ █████ ░░░██████░██ ███ ██ ░░░█████░
|
219
|
-
░░░░░░░░░ ░░░░░ ░░░░░░░░░░ ░░░░░░░░░░ ░░░░░ ░░░░ ░░░░░ ░░░░░░ ░░ ░░░ ░░ ░░░░░░
|
204
|
+
bug_tracker_uri: https://github.com/sidekiq/sidekiq/issues
|
205
|
+
documentation_uri: https://github.com/sidekiq/sidekiq/wiki
|
206
|
+
changelog_uri: https://github.com/sidekiq/sidekiq/blob/main/Changes.md
|
207
|
+
source_code_uri: https://github.com/sidekiq/sidekiq
|
208
|
+
post_install_message: |2+
|
220
209
|
|
210
|
+
Welcome to Sidekiq 7.0!
|
221
211
|
|
222
212
|
1. Use `gem 'sidekiq', '<7'` in your Gemfile if you don't want this new version.
|
223
|
-
2. Read the release notes at https://github.com/
|
224
|
-
3.
|
213
|
+
2. Read the release notes at https://github.com/sidekiq/sidekiq/blob/main/docs/7.0-Upgrade.md
|
214
|
+
3. If you have problems, search for open/closed issues at https://github.com/sidekiq/sidekiq/issues/
|
225
215
|
|
226
|
-
####################################################
|
227
216
|
rdoc_options: []
|
228
217
|
require_paths:
|
229
218
|
- lib
|
@@ -238,8 +227,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
238
227
|
- !ruby/object:Gem::Version
|
239
228
|
version: '0'
|
240
229
|
requirements: []
|
241
|
-
rubygems_version: 3.
|
230
|
+
rubygems_version: 3.4.6
|
242
231
|
signing_key:
|
243
232
|
specification_version: 4
|
244
233
|
summary: Simple, efficient background processing for Ruby
|
245
234
|
test_files: []
|
235
|
+
...
|