sidekiq 5.2.1 → 6.4.0
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 +5 -5
- data/Changes.md +368 -1
- data/LICENSE +3 -3
- data/README.md +21 -37
- data/bin/sidekiq +26 -2
- data/bin/sidekiqload +33 -25
- data/bin/sidekiqmon +8 -0
- data/lib/generators/sidekiq/job_generator.rb +57 -0
- data/lib/generators/sidekiq/templates/{worker.rb.erb → job.rb.erb} +2 -2
- data/lib/generators/sidekiq/templates/{worker_spec.rb.erb → job_spec.rb.erb} +1 -1
- data/lib/generators/sidekiq/templates/{worker_test.rb.erb → job_test.rb.erb} +1 -1
- data/lib/sidekiq/api.rb +316 -246
- data/lib/sidekiq/cli.rb +195 -221
- data/lib/sidekiq/client.rb +42 -60
- data/lib/sidekiq/delay.rb +7 -6
- data/lib/sidekiq/exception_handler.rb +10 -12
- data/lib/sidekiq/extensions/action_mailer.rb +15 -24
- data/lib/sidekiq/extensions/active_record.rb +15 -12
- data/lib/sidekiq/extensions/class_methods.rb +16 -13
- data/lib/sidekiq/extensions/generic_proxy.rb +8 -6
- data/lib/sidekiq/fetch.rb +39 -31
- data/lib/sidekiq/job.rb +13 -0
- data/lib/sidekiq/job_logger.rb +47 -9
- data/lib/sidekiq/job_retry.rb +88 -68
- data/lib/sidekiq/job_util.rb +65 -0
- data/lib/sidekiq/launcher.rb +151 -61
- data/lib/sidekiq/logger.rb +166 -0
- data/lib/sidekiq/manager.rb +18 -22
- data/lib/sidekiq/middleware/chain.rb +20 -8
- data/lib/sidekiq/middleware/current_attributes.rb +57 -0
- data/lib/sidekiq/middleware/i18n.rb +5 -7
- data/lib/sidekiq/monitor.rb +133 -0
- data/lib/sidekiq/paginator.rb +18 -14
- data/lib/sidekiq/processor.rb +116 -82
- data/lib/sidekiq/rails.rb +42 -38
- data/lib/sidekiq/redis_connection.rb +49 -30
- data/lib/sidekiq/scheduled.rb +62 -28
- data/lib/sidekiq/sd_notify.rb +149 -0
- data/lib/sidekiq/systemd.rb +24 -0
- data/lib/sidekiq/testing/inline.rb +2 -1
- data/lib/sidekiq/testing.rb +36 -27
- data/lib/sidekiq/util.rb +57 -15
- data/lib/sidekiq/version.rb +2 -1
- data/lib/sidekiq/web/action.rb +15 -11
- data/lib/sidekiq/web/application.rb +95 -76
- data/lib/sidekiq/web/csrf_protection.rb +180 -0
- data/lib/sidekiq/web/helpers.rb +115 -91
- data/lib/sidekiq/web/router.rb +23 -19
- data/lib/sidekiq/web.rb +61 -105
- data/lib/sidekiq/worker.rb +259 -99
- data/lib/sidekiq.rb +79 -45
- data/sidekiq.gemspec +23 -18
- data/web/assets/images/apple-touch-icon.png +0 -0
- data/web/assets/javascripts/application.js +83 -64
- data/web/assets/javascripts/dashboard.js +66 -75
- data/web/assets/stylesheets/application-dark.css +143 -0
- data/web/assets/stylesheets/application-rtl.css +0 -4
- data/web/assets/stylesheets/application.css +75 -231
- data/web/assets/stylesheets/bootstrap.css +1 -1
- data/web/locales/ar.yml +9 -2
- data/web/locales/de.yml +14 -2
- data/web/locales/en.yml +7 -1
- data/web/locales/es.yml +18 -2
- data/web/locales/fr.yml +10 -3
- data/web/locales/ja.yml +7 -1
- data/web/locales/lt.yml +83 -0
- data/web/locales/pl.yml +4 -4
- data/web/locales/ru.yml +4 -0
- data/web/locales/vi.yml +83 -0
- data/web/views/_footer.erb +1 -1
- data/web/views/_job_info.erb +3 -2
- data/web/views/_nav.erb +3 -17
- data/web/views/_poll_link.erb +2 -5
- data/web/views/_summary.erb +7 -7
- data/web/views/busy.erb +54 -20
- data/web/views/dashboard.erb +22 -14
- data/web/views/dead.erb +3 -3
- data/web/views/layout.erb +3 -1
- data/web/views/morgue.erb +9 -6
- data/web/views/queue.erb +20 -10
- data/web/views/queues.erb +11 -3
- data/web/views/retries.erb +14 -7
- data/web/views/retry.erb +3 -3
- data/web/views/scheduled.erb +5 -2
- metadata +39 -54
- data/.github/contributing.md +0 -32
- data/.github/issue_template.md +0 -11
- data/.gitignore +0 -13
- data/.travis.yml +0 -14
- data/3.0-Upgrade.md +0 -70
- data/4.0-Upgrade.md +0 -53
- data/5.0-Upgrade.md +0 -56
- data/COMM-LICENSE +0 -95
- data/Ent-Changes.md +0 -221
- data/Gemfile +0 -14
- data/Pro-2.0-Upgrade.md +0 -138
- data/Pro-3.0-Upgrade.md +0 -44
- data/Pro-4.0-Upgrade.md +0 -35
- data/Pro-Changes.md +0 -739
- data/Rakefile +0 -8
- data/bin/sidekiqctl +0 -99
- data/code_of_conduct.md +0 -50
- data/lib/generators/sidekiq/worker_generator.rb +0 -49
- data/lib/sidekiq/core_ext.rb +0 -1
- data/lib/sidekiq/logging.rb +0 -122
- data/lib/sidekiq/middleware/server/active_record.rb +0 -23
data/web/views/dashboard.erb
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
<div class= "dashboard clearfix">
|
3
3
|
<h3 >
|
4
4
|
<%= t('Dashboard') %>
|
5
|
-
<span class="beacon">
|
5
|
+
<span id="beacon" class="beacon">
|
6
6
|
<span class="ring"></span>
|
7
7
|
<span class="dot"></span>
|
8
8
|
</span>
|
9
9
|
</h3>
|
10
10
|
<div class="interval-slider ltr">
|
11
11
|
<span class="interval-slider-label"><%= t('PollingInterval') %>:</span>
|
12
|
-
<span class="current-interval">5 sec</span>
|
12
|
+
<span id="sldr-text" class="current-interval">5 sec</span>
|
13
13
|
<br/>
|
14
|
-
<input type="range" min="2000" max="20000" step="1000" value="5000"/>
|
14
|
+
<input id="sldr" type="range" min="2000" max="20000" step="1000" value="5000"/>
|
15
15
|
</div>
|
16
16
|
</div>
|
17
17
|
|
@@ -20,54 +20,62 @@
|
|
20
20
|
<div id="realtime-legend"></div>
|
21
21
|
</div>
|
22
22
|
|
23
|
-
<div class="row
|
24
|
-
|
25
|
-
|
23
|
+
<div class="row header">
|
24
|
+
<div class="col-sm-4 pull-left flip">
|
25
|
+
<h3><%= t('History') %></h3>
|
26
|
+
</div>
|
27
|
+
</div>
|
28
|
+
<div class="row chart">
|
29
|
+
<div>
|
26
30
|
<a href="<%= root_path %>?days=7" class="history-graph <%= "active" if params[:days] == "7" %>"><%= t('OneWeek') %></a>
|
27
31
|
<a href="<%= root_path %>" class="history-graph <%= "active" if params[:days].nil? || params[:days] == "30" %>"><%= t('OneMonth') %></a>
|
28
32
|
<a href="<%= root_path %>?days=90" class="history-graph <%= "active" if params[:days] == "90" %>"><%= t('ThreeMonths') %></a>
|
29
33
|
<a href="<%= root_path %>?days=180" class="history-graph <%= "active" if params[:days] == "180" %>"><%= t('SixMonths') %></a>
|
30
|
-
</
|
34
|
+
</div>
|
31
35
|
|
32
36
|
<div id="history" data-processed-label="<%= t('Processed') %>" data-failed-label="<%= t('Failed') %>" data-processed="<%= h Sidekiq.dump_json(@processed_history) %>" data-failed="<%= h Sidekiq.dump_json(@failed_history) %>" data-update-url="<%= root_path %>stats"></div>
|
33
37
|
<div id="history-legend"></div>
|
34
38
|
</div>
|
35
39
|
|
36
40
|
<br/>
|
37
|
-
<
|
38
|
-
<div class="
|
41
|
+
<div class="row header">
|
42
|
+
<div class="col-sm-4 pull-left flip">
|
43
|
+
<h3>Redis</h3>
|
44
|
+
</div>
|
45
|
+
</div>
|
46
|
+
<div class="stats-wrapper">
|
39
47
|
<div class="stats-container">
|
40
48
|
<% if @redis_info.fetch("redis_version", nil) %>
|
41
49
|
<div class="stat">
|
42
|
-
<h3
|
50
|
+
<h3 id="redis_version"><%= @redis_info.fetch("redis_version") %></h3>
|
43
51
|
<p><%= t('Version') %></p>
|
44
52
|
</div>
|
45
53
|
<% end %>
|
46
54
|
|
47
55
|
<% if @redis_info.fetch("uptime_in_days", nil) %>
|
48
56
|
<div class="stat">
|
49
|
-
<h3
|
57
|
+
<h3 id="uptime_in_days"><%= @redis_info.fetch("uptime_in_days") %></h3>
|
50
58
|
<p><%= t('Uptime') %></p>
|
51
59
|
</div>
|
52
60
|
<% end %>
|
53
61
|
|
54
62
|
<% if @redis_info.fetch("connected_clients", nil) %>
|
55
63
|
<div class="stat">
|
56
|
-
<h3
|
64
|
+
<h3 id="connected_clients"><%= @redis_info.fetch("connected_clients") %></h3>
|
57
65
|
<p><%= t('Connections') %></p>
|
58
66
|
</div>
|
59
67
|
<% end %>
|
60
68
|
|
61
69
|
<% if @redis_info.fetch("used_memory_human", nil) %>
|
62
70
|
<div class="stat">
|
63
|
-
<h3
|
71
|
+
<h3 id="used_memory_human"><%= @redis_info.fetch("used_memory_human") %></h3>
|
64
72
|
<p><%= t('MemoryUsage') %></p>
|
65
73
|
</div>
|
66
74
|
<% end %>
|
67
75
|
|
68
76
|
<% if @redis_info.fetch("used_memory_peak_human", nil) %>
|
69
77
|
<div class="stat">
|
70
|
-
<h3
|
78
|
+
<h3 id="used_memory_peak_human"><%= @redis_info.fetch("used_memory_peak_human") %></h3>
|
71
79
|
<p><%= t('PeakMemoryUsage') %></p>
|
72
80
|
</div>
|
73
81
|
<% end %>
|
data/web/views/dead.erb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
<h3><%= t('Error') %></h3>
|
4
4
|
<div class="table_container">
|
5
|
-
<table class="error table table-bordered table-striped">
|
5
|
+
<table class="error table table-bordered table-striped table-hover">
|
6
6
|
<tbody>
|
7
7
|
<tr>
|
8
8
|
<th><%= t('ErrorClass') %></th>
|
@@ -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,16 +11,18 @@
|
|
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 and (prefers-color-scheme: dark)" 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 %>
|
17
18
|
|
19
|
+
<link rel="apple-touch-icon" href="<%= root_path %>images/apple-touch-icon.png">
|
18
20
|
<link rel="shortcut icon" type="image/ico" href="<%= root_path %>images/favicon.ico" />
|
19
21
|
<script type="text/javascript" src="<%= root_path %>javascripts/application.js"></script>
|
20
22
|
<meta name="google" content="notranslate" />
|
21
23
|
<%= display_custom_head %>
|
22
24
|
</head>
|
23
|
-
<body class="admin" data-
|
25
|
+
<body class="admin" data-locale="<%= locale %>">
|
24
26
|
<%= erb :_nav %>
|
25
27
|
<div id="page">
|
26
28
|
<div class="container">
|
data/web/views/morgue.erb
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
<form action="<%= root_path %>morgue" method="post">
|
15
15
|
<%= csrf_tag %>
|
16
16
|
<div class="table_container">
|
17
|
-
<table class="table table-striped table-bordered table-
|
17
|
+
<table class="table table-striped table-bordered table-hover">
|
18
18
|
<thead>
|
19
19
|
<tr>
|
20
20
|
<th class="table-checkbox checkbox-column">
|
@@ -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, "dead") %>
|
48
|
+
</td>
|
46
49
|
<td>
|
47
50
|
<div class="args"><%= display_args(entry.display_args) %></div>
|
48
51
|
</td>
|
@@ -55,18 +58,18 @@
|
|
55
58
|
<% end %>
|
56
59
|
</table>
|
57
60
|
</div>
|
58
|
-
<input class="btn btn-primary
|
59
|
-
<input class="btn btn-danger
|
61
|
+
<input class="btn btn-primary pull-left flip" type="submit" name="retry" value="<%= t('RetryNow') %>" />
|
62
|
+
<input class="btn btn-danger pull-left flip" type="submit" name="delete" value="<%= t('Delete') %>" />
|
60
63
|
</form>
|
61
64
|
|
62
65
|
<% unfiltered? do %>
|
63
66
|
<form action="<%= root_path %>morgue/all/delete" method="post">
|
64
67
|
<%= csrf_tag %>
|
65
|
-
<input class="btn btn-danger
|
68
|
+
<input class="btn btn-danger pull-right flip" type="submit" name="delete" value="<%= t('DeleteAll') %>" data-confirm="<%= t('AreYouSure') %>" />
|
66
69
|
</form>
|
67
70
|
<form action="<%= root_path %>morgue/all/retry" method="post">
|
68
71
|
<%= csrf_tag %>
|
69
|
-
<input class="btn btn-danger
|
72
|
+
<input class="btn btn-danger pull-right flip" type="submit" name="retry" value="<%= t('RetryAll') %>" data-confirm="<%= t('AreYouSure') %>" />
|
70
73
|
</form>
|
71
74
|
<% end %>
|
72
75
|
|
data/web/views/queue.erb
CHANGED
@@ -5,6 +5,7 @@
|
|
5
5
|
<% if @queue.paused? %>
|
6
6
|
<span class="label label-danger"><%= t('Paused') %></span>
|
7
7
|
<% end %>
|
8
|
+
<span class="badge badge-secondary"><%= number_with_delimiter(@total_size) %></span>
|
8
9
|
</h3>
|
9
10
|
</div>
|
10
11
|
<div class="col-sm-4 pull-right flip">
|
@@ -14,27 +15,36 @@
|
|
14
15
|
<div class="table_container">
|
15
16
|
<table class="queue table table-hover table-bordered table-striped">
|
16
17
|
<thead>
|
18
|
+
<th><a href="<%= url %>?direction=<%= params[:direction] == 'asc' ? 'desc' : 'asc' %>"># <%= sort_direction_label %></a></th>
|
17
19
|
<th><%= t('Job') %></th>
|
18
20
|
<th><%= t('Arguments') %></th>
|
19
21
|
<th></th>
|
20
22
|
</thead>
|
21
|
-
<% @
|
22
|
-
<tr>
|
23
|
-
|
23
|
+
<% @jobs.each_with_index do |job, index| %>
|
24
|
+
<tr title="<%= job.jid %>">
|
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 %>
|
24
30
|
<td>
|
25
|
-
|
31
|
+
<%= h(job.display_class) %>
|
32
|
+
<%= display_tags(job, nil) %>
|
33
|
+
</td>
|
34
|
+
<td>
|
35
|
+
<% a = job.display_args %>
|
26
36
|
<% if a.inspect.size > 100 %>
|
27
|
-
<span
|
28
|
-
<button data-toggle="
|
29
|
-
<div class="toggle
|
37
|
+
<span id="job_<%= index %>"><%= h(a.inspect[0..100]) + "... " %></span>
|
38
|
+
<button data-toggle="job_<%= index %>" class="btn btn-default btn-xs"><%= t('ShowAll') %></button>
|
39
|
+
<div class="toggle" id="job_<%= index %>_full"><%= display_args(a) %></div>
|
30
40
|
<% else %>
|
31
|
-
<%= display_args(
|
41
|
+
<%= display_args(job.display_args) %>
|
32
42
|
<% end %>
|
33
43
|
</td>
|
34
44
|
<td>
|
35
45
|
<form action="<%= root_path %>queues/<%= CGI.escape(@name) %>/delete" method="post">
|
36
46
|
<%= csrf_tag %>
|
37
|
-
<input name="key_val" value="<%= h
|
47
|
+
<input name="key_val" value="<%= h job.value %>" type="hidden" />
|
38
48
|
<input class="btn btn-danger btn-xs" type="submit" name="delete" value="<%= t('Delete') %>" data-confirm="<%= t('AreYouSure') %>" />
|
39
49
|
</form>
|
40
50
|
</td>
|
@@ -42,4 +52,4 @@
|
|
42
52
|
<% end %>
|
43
53
|
</table>
|
44
54
|
</div>
|
45
|
-
<%= erb :_paging, locals: { url: "#{root_path}queues/#{@name}" } %>
|
55
|
+
<%= erb :_paging, locals: { url: "#{root_path}queues/#{CGI.escape(@name)}" } %>
|
data/web/views/queues.erb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
<h3><%= t('Queues') %></h3>
|
2
2
|
|
3
3
|
<div class="table_container">
|
4
|
-
<table class="queues table table-hover table-bordered table-striped
|
4
|
+
<table class="queues table table-hover table-bordered table-striped">
|
5
5
|
<thead>
|
6
6
|
<th><%= t('Queue') %></th>
|
7
7
|
<th><%= t('Size') %></th>
|
@@ -17,11 +17,19 @@
|
|
17
17
|
<% end %>
|
18
18
|
</td>
|
19
19
|
<td><%= number_with_delimiter(queue.size) %> </td>
|
20
|
-
<td
|
20
|
+
<td><% queue_latency = queue.latency %><%= number_with_delimiter(queue_latency.round(2)) %><%= (queue_latency < 60) ? '' : " (#{relative_time(Time.at(Time.now.to_f - queue_latency))})" %> </td>
|
21
21
|
<td class="delete-confirm">
|
22
22
|
<form action="<%=root_path %>queues/<%= CGI.escape(queue.name) %>" method="post">
|
23
23
|
<%= csrf_tag %>
|
24
|
-
<input class="btn btn-danger
|
24
|
+
<input class="btn btn-danger" type="submit" name="delete" title="This will delete all jobs within the queue, it will reappear if you push more jobs to it in the future." value="<%= t('Delete') %>" data-confirm="<%= t('AreYouSureDeleteQueue', :queue => h(queue.name)) %>" />
|
25
|
+
|
26
|
+
<% if Sidekiq.pro? %>
|
27
|
+
<% if queue.paused? %>
|
28
|
+
<input class="btn btn-danger" type="submit" name="unpause" value="<%= t('Unpause') %>" />
|
29
|
+
<% else %>
|
30
|
+
<input class="btn btn-danger" type="submit" name="pause" value="<%= t('Pause') %>" />
|
31
|
+
<% end %>
|
32
|
+
<% end %>
|
25
33
|
</form>
|
26
34
|
</td>
|
27
35
|
</tr>
|
data/web/views/retries.erb
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
<form action="<%= root_path %>retries" method="post">
|
15
15
|
<%= csrf_tag %>
|
16
16
|
<div class="table_container">
|
17
|
-
<table class="table table-striped table-bordered table-
|
17
|
+
<table class="table table-striped table-bordered table-hover">
|
18
18
|
<thead>
|
19
19
|
<tr>
|
20
20
|
<th class="table-checkbox checkbox-column">
|
@@ -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>
|
@@ -55,19 +58,23 @@
|
|
55
58
|
<% end %>
|
56
59
|
</table>
|
57
60
|
</div>
|
58
|
-
<input class="btn btn-primary
|
59
|
-
<input class="btn btn-danger
|
60
|
-
<input class="btn btn-danger
|
61
|
+
<input class="btn btn-primary pull-left flip" type="submit" name="retry" value="<%= t('RetryNow') %>" />
|
62
|
+
<input class="btn btn-danger pull-left flip" type="submit" name="delete" value="<%= t('Delete') %>" />
|
63
|
+
<input class="btn btn-danger pull-left flip" type="submit" name="kill" value="<%= t('Kill') %>" />
|
61
64
|
</form>
|
62
65
|
|
63
66
|
<% unfiltered? do %>
|
64
67
|
<form action="<%= root_path %>retries/all/delete" method="post">
|
65
68
|
<%= csrf_tag %>
|
66
|
-
<input class="btn btn-danger
|
69
|
+
<input class="btn btn-danger pull-right flip" type="submit" name="delete" value="<%= t('DeleteAll') %>" data-confirm="<%= t('AreYouSure') %>" />
|
67
70
|
</form>
|
68
71
|
<form action="<%= root_path %>retries/all/retry" method="post">
|
69
72
|
<%= csrf_tag %>
|
70
|
-
<input class="btn btn-danger
|
73
|
+
<input class="btn btn-danger pull-right flip" type="submit" name="retry" value="<%= t('RetryAll') %>" data-confirm="<%= t('AreYouSure') %>" />
|
74
|
+
</form>
|
75
|
+
<form action="<%= root_path %>retries/all/kill" method="post">
|
76
|
+
<%= csrf_tag %>
|
77
|
+
<input class="btn btn-danger pull-right flip" type="submit" name="kill" value="<%= t('KillAll') %>" data-confirm="<%= t('AreYouSure') %>" />
|
71
78
|
</form>
|
72
79
|
<% end %>
|
73
80
|
|
data/web/views/retry.erb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
<h3><%= t('Error') %></h3>
|
4
4
|
<div class="table_container">
|
5
|
-
<table class="error table table-bordered table-striped">
|
5
|
+
<table class="error table table-bordered table-striped table-hover">
|
6
6
|
<tbody>
|
7
7
|
<tr>
|
8
8
|
<th><%= t('ErrorClass') %></th>
|
@@ -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
@@ -15,7 +15,7 @@
|
|
15
15
|
<form action="<%= root_path %>scheduled" method="post">
|
16
16
|
<%= csrf_tag %>
|
17
17
|
<div class="table_container">
|
18
|
-
<table class="table table-striped table-bordered table-
|
18
|
+
<table class="table table-striped table-bordered table-hover">
|
19
19
|
<thead>
|
20
20
|
<tr>
|
21
21
|
<th class="checkbox-column">
|
@@ -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:
|
4
|
+
version: 6.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Perham
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-01-20 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:
|
20
|
-
- - "<"
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: '5'
|
19
|
+
version: 4.2.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:
|
30
|
-
- - "<"
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: '5'
|
26
|
+
version: 4.2.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,66 +35,46 @@ 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
|
53
41
|
- !ruby/object:Gem::Dependency
|
54
|
-
name: rack
|
42
|
+
name: rack
|
55
43
|
requirement: !ruby/object:Gem::Requirement
|
56
44
|
requirements:
|
57
|
-
- - "
|
45
|
+
- - "~>"
|
58
46
|
- !ruby/object:Gem::Version
|
59
|
-
version:
|
47
|
+
version: '2.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:
|
54
|
+
version: '2.0'
|
67
55
|
description: Simple, efficient background processing for Ruby.
|
68
56
|
email:
|
69
57
|
- mperham@gmail.com
|
70
58
|
executables:
|
71
59
|
- sidekiq
|
72
|
-
-
|
60
|
+
- sidekiqmon
|
73
61
|
extensions: []
|
74
62
|
extra_rdoc_files: []
|
75
63
|
files:
|
76
|
-
- ".github/contributing.md"
|
77
|
-
- ".github/issue_template.md"
|
78
|
-
- ".gitignore"
|
79
|
-
- ".travis.yml"
|
80
|
-
- 3.0-Upgrade.md
|
81
|
-
- 4.0-Upgrade.md
|
82
|
-
- 5.0-Upgrade.md
|
83
|
-
- COMM-LICENSE
|
84
64
|
- Changes.md
|
85
|
-
- Ent-Changes.md
|
86
|
-
- Gemfile
|
87
65
|
- LICENSE
|
88
|
-
- Pro-2.0-Upgrade.md
|
89
|
-
- Pro-3.0-Upgrade.md
|
90
|
-
- Pro-4.0-Upgrade.md
|
91
|
-
- Pro-Changes.md
|
92
66
|
- README.md
|
93
|
-
- Rakefile
|
94
67
|
- bin/sidekiq
|
95
|
-
- bin/sidekiqctl
|
96
68
|
- bin/sidekiqload
|
97
|
-
-
|
98
|
-
- lib/generators/sidekiq/
|
99
|
-
- lib/generators/sidekiq/templates/
|
100
|
-
- lib/generators/sidekiq/templates/
|
101
|
-
- lib/generators/sidekiq/
|
69
|
+
- bin/sidekiqmon
|
70
|
+
- lib/generators/sidekiq/job_generator.rb
|
71
|
+
- lib/generators/sidekiq/templates/job.rb.erb
|
72
|
+
- lib/generators/sidekiq/templates/job_spec.rb.erb
|
73
|
+
- lib/generators/sidekiq/templates/job_test.rb.erb
|
102
74
|
- lib/sidekiq.rb
|
103
75
|
- lib/sidekiq/api.rb
|
104
76
|
- lib/sidekiq/cli.rb
|
105
77
|
- lib/sidekiq/client.rb
|
106
|
-
- lib/sidekiq/core_ext.rb
|
107
78
|
- lib/sidekiq/delay.rb
|
108
79
|
- lib/sidekiq/exception_handler.rb
|
109
80
|
- lib/sidekiq/extensions/action_mailer.rb
|
@@ -111,19 +82,24 @@ files:
|
|
111
82
|
- lib/sidekiq/extensions/class_methods.rb
|
112
83
|
- lib/sidekiq/extensions/generic_proxy.rb
|
113
84
|
- lib/sidekiq/fetch.rb
|
85
|
+
- lib/sidekiq/job.rb
|
114
86
|
- lib/sidekiq/job_logger.rb
|
115
87
|
- lib/sidekiq/job_retry.rb
|
88
|
+
- lib/sidekiq/job_util.rb
|
116
89
|
- lib/sidekiq/launcher.rb
|
117
|
-
- lib/sidekiq/
|
90
|
+
- lib/sidekiq/logger.rb
|
118
91
|
- lib/sidekiq/manager.rb
|
119
92
|
- lib/sidekiq/middleware/chain.rb
|
93
|
+
- lib/sidekiq/middleware/current_attributes.rb
|
120
94
|
- lib/sidekiq/middleware/i18n.rb
|
121
|
-
- lib/sidekiq/
|
95
|
+
- lib/sidekiq/monitor.rb
|
122
96
|
- lib/sidekiq/paginator.rb
|
123
97
|
- lib/sidekiq/processor.rb
|
124
98
|
- lib/sidekiq/rails.rb
|
125
99
|
- lib/sidekiq/redis_connection.rb
|
126
100
|
- lib/sidekiq/scheduled.rb
|
101
|
+
- lib/sidekiq/sd_notify.rb
|
102
|
+
- lib/sidekiq/systemd.rb
|
127
103
|
- lib/sidekiq/testing.rb
|
128
104
|
- lib/sidekiq/testing/inline.rb
|
129
105
|
- lib/sidekiq/util.rb
|
@@ -131,15 +107,18 @@ files:
|
|
131
107
|
- lib/sidekiq/web.rb
|
132
108
|
- lib/sidekiq/web/action.rb
|
133
109
|
- lib/sidekiq/web/application.rb
|
110
|
+
- lib/sidekiq/web/csrf_protection.rb
|
134
111
|
- lib/sidekiq/web/helpers.rb
|
135
112
|
- lib/sidekiq/web/router.rb
|
136
113
|
- lib/sidekiq/worker.rb
|
137
114
|
- sidekiq.gemspec
|
115
|
+
- web/assets/images/apple-touch-icon.png
|
138
116
|
- web/assets/images/favicon.ico
|
139
117
|
- web/assets/images/logo.png
|
140
118
|
- web/assets/images/status.png
|
141
119
|
- web/assets/javascripts/application.js
|
142
120
|
- web/assets/javascripts/dashboard.js
|
121
|
+
- web/assets/stylesheets/application-dark.css
|
143
122
|
- web/assets/stylesheets/application-rtl.css
|
144
123
|
- web/assets/stylesheets/application.css
|
145
124
|
- web/assets/stylesheets/bootstrap-rtl.min.css
|
@@ -158,6 +137,7 @@ files:
|
|
158
137
|
- web/locales/it.yml
|
159
138
|
- web/locales/ja.yml
|
160
139
|
- web/locales/ko.yml
|
140
|
+
- web/locales/lt.yml
|
161
141
|
- web/locales/nb.yml
|
162
142
|
- web/locales/nl.yml
|
163
143
|
- web/locales/pl.yml
|
@@ -168,6 +148,7 @@ files:
|
|
168
148
|
- web/locales/ta.yml
|
169
149
|
- web/locales/uk.yml
|
170
150
|
- web/locales/ur.yml
|
151
|
+
- web/locales/vi.yml
|
171
152
|
- web/locales/zh-cn.yml
|
172
153
|
- web/locales/zh-tw.yml
|
173
154
|
- web/views/_footer.erb
|
@@ -188,11 +169,16 @@ files:
|
|
188
169
|
- web/views/retry.erb
|
189
170
|
- web/views/scheduled.erb
|
190
171
|
- web/views/scheduled_job_info.erb
|
191
|
-
homepage:
|
172
|
+
homepage: https://sidekiq.org
|
192
173
|
licenses:
|
193
174
|
- LGPL-3.0
|
194
|
-
metadata:
|
195
|
-
|
175
|
+
metadata:
|
176
|
+
homepage_uri: https://sidekiq.org
|
177
|
+
bug_tracker_uri: https://github.com/mperham/sidekiq/issues
|
178
|
+
documentation_uri: https://github.com/mperham/sidekiq/wiki
|
179
|
+
changelog_uri: https://github.com/mperham/sidekiq/blob/main/Changes.md
|
180
|
+
source_code_uri: https://github.com/mperham/sidekiq
|
181
|
+
post_install_message:
|
196
182
|
rdoc_options: []
|
197
183
|
require_paths:
|
198
184
|
- lib
|
@@ -200,16 +186,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
200
186
|
requirements:
|
201
187
|
- - ">="
|
202
188
|
- !ruby/object:Gem::Version
|
203
|
-
version: 2.
|
189
|
+
version: 2.5.0
|
204
190
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
205
191
|
requirements:
|
206
192
|
- - ">="
|
207
193
|
- !ruby/object:Gem::Version
|
208
194
|
version: '0'
|
209
195
|
requirements: []
|
210
|
-
|
211
|
-
|
212
|
-
signing_key:
|
196
|
+
rubygems_version: 3.1.4
|
197
|
+
signing_key:
|
213
198
|
specification_version: 4
|
214
199
|
summary: Simple, efficient background processing for Ruby
|
215
200
|
test_files: []
|
data/.github/contributing.md
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
# Contributing
|
2
|
-
|
3
|
-
## Issues
|
4
|
-
|
5
|
-
When opening an issue:
|
6
|
-
|
7
|
-
* include the full **backtrace** with your error
|
8
|
-
* include your Sidekiq initializer
|
9
|
-
* list versions you are using: Ruby, Rails, Sidekiq, OS, etc.
|
10
|
-
|
11
|
-
It's always better to include more info rather than less.
|
12
|
-
|
13
|
-
## Code
|
14
|
-
|
15
|
-
It's always best to open an issue before investing a lot of time into a
|
16
|
-
fix or new functionality. Functionality must meet my design goals and
|
17
|
-
vision for the project to be accepted; I would be happy to discuss how
|
18
|
-
your idea can best fit into Sidekiq.
|
19
|
-
|
20
|
-
## Legal
|
21
|
-
|
22
|
-
By submitting a Pull Request, you disavow any rights or claims to any changes
|
23
|
-
submitted to the Sidekiq project and assign the copyright of
|
24
|
-
those changes to Contributed Systems LLC.
|
25
|
-
|
26
|
-
If you cannot or do not want to reassign those rights (your employment
|
27
|
-
contract for your employer may not allow this), you should not submit a PR.
|
28
|
-
Open an issue and someone else can do the work.
|
29
|
-
|
30
|
-
This is a legal way of saying "If you submit a PR to us, that code becomes ours".
|
31
|
-
99.9% of the time that's what you intend anyways; we hope it doesn't scare you
|
32
|
-
away from contributing.
|
data/.github/issue_template.md
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
Ruby version:
|
2
|
-
Sidekiq / Pro / Enterprise version(s):
|
3
|
-
|
4
|
-
Please include your initializer and any error message with the full backtrace.
|
5
|
-
|
6
|
-
Are you using an old version?
|
7
|
-
Have you checked the changelogs to see if your issue has been fixed in a later version?
|
8
|
-
|
9
|
-
https://github.com/mperham/sidekiq/blob/master/Changes.md
|
10
|
-
https://github.com/mperham/sidekiq/blob/master/Pro-Changes.md
|
11
|
-
https://github.com/mperham/sidekiq/blob/master/Ent-Changes.md
|