sidekiq 6.1.2 → 6.5.6
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/Changes.md +215 -2
- data/LICENSE +3 -3
- data/README.md +9 -4
- data/bin/sidekiq +3 -3
- data/bin/sidekiqload +70 -66
- data/bin/sidekiqmon +1 -1
- 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 +321 -145
- data/lib/sidekiq/cli.rb +73 -40
- data/lib/sidekiq/client.rb +48 -72
- data/lib/sidekiq/{util.rb → component.rb} +12 -14
- data/lib/sidekiq/delay.rb +3 -1
- data/lib/sidekiq/extensions/generic_proxy.rb +4 -2
- data/lib/sidekiq/fetch.rb +31 -20
- data/lib/sidekiq/job.rb +13 -0
- data/lib/sidekiq/job_logger.rb +16 -28
- data/lib/sidekiq/job_retry.rb +79 -59
- data/lib/sidekiq/job_util.rb +71 -0
- data/lib/sidekiq/launcher.rb +126 -65
- data/lib/sidekiq/logger.rb +11 -20
- data/lib/sidekiq/manager.rb +35 -34
- data/lib/sidekiq/metrics/deploy.rb +47 -0
- data/lib/sidekiq/metrics/query.rb +153 -0
- data/lib/sidekiq/metrics/shared.rb +94 -0
- data/lib/sidekiq/metrics/tracking.rb +134 -0
- data/lib/sidekiq/middleware/chain.rb +87 -41
- data/lib/sidekiq/middleware/current_attributes.rb +63 -0
- data/lib/sidekiq/middleware/i18n.rb +6 -4
- data/lib/sidekiq/middleware/modules.rb +21 -0
- data/lib/sidekiq/monitor.rb +1 -1
- data/lib/sidekiq/paginator.rb +8 -8
- data/lib/sidekiq/processor.rb +47 -41
- data/lib/sidekiq/rails.rb +22 -4
- data/lib/sidekiq/redis_client_adapter.rb +154 -0
- data/lib/sidekiq/redis_connection.rb +84 -55
- data/lib/sidekiq/ring_buffer.rb +29 -0
- data/lib/sidekiq/scheduled.rb +55 -25
- data/lib/sidekiq/testing/inline.rb +4 -4
- data/lib/sidekiq/testing.rb +38 -39
- data/lib/sidekiq/transaction_aware_client.rb +45 -0
- data/lib/sidekiq/version.rb +1 -1
- data/lib/sidekiq/web/action.rb +3 -3
- data/lib/sidekiq/web/application.rb +37 -13
- data/lib/sidekiq/web/csrf_protection.rb +30 -8
- data/lib/sidekiq/web/helpers.rb +60 -28
- data/lib/sidekiq/web/router.rb +4 -1
- data/lib/sidekiq/web.rb +38 -78
- data/lib/sidekiq/worker.rb +136 -13
- data/lib/sidekiq.rb +114 -31
- data/sidekiq.gemspec +12 -4
- data/web/assets/images/apple-touch-icon.png +0 -0
- data/web/assets/javascripts/application.js +113 -60
- data/web/assets/javascripts/chart.min.js +13 -0
- data/web/assets/javascripts/chartjs-plugin-annotation.min.js +7 -0
- data/web/assets/javascripts/dashboard.js +50 -67
- data/web/assets/javascripts/graph.js +16 -0
- data/web/assets/javascripts/metrics.js +262 -0
- data/web/assets/stylesheets/application-dark.css +36 -36
- data/web/assets/stylesheets/application-rtl.css +0 -4
- data/web/assets/stylesheets/application.css +82 -237
- data/web/locales/ar.yml +8 -2
- data/web/locales/el.yml +43 -19
- data/web/locales/en.yml +11 -1
- data/web/locales/es.yml +18 -2
- data/web/locales/fr.yml +8 -1
- data/web/locales/ja.yml +3 -0
- data/web/locales/lt.yml +1 -1
- data/web/locales/pt-br.yml +27 -9
- data/web/views/_footer.erb +1 -1
- data/web/views/_job_info.erb +1 -1
- data/web/views/_nav.erb +1 -1
- data/web/views/_poll_link.erb +2 -5
- data/web/views/_summary.erb +7 -7
- data/web/views/busy.erb +50 -19
- data/web/views/dashboard.erb +23 -14
- data/web/views/dead.erb +1 -1
- data/web/views/layout.erb +2 -1
- data/web/views/metrics.erb +69 -0
- data/web/views/metrics_for_job.erb +87 -0
- data/web/views/morgue.erb +6 -6
- data/web/views/queue.erb +15 -11
- data/web/views/queues.erb +3 -3
- data/web/views/retries.erb +7 -7
- data/web/views/retry.erb +1 -1
- data/web/views/scheduled.erb +1 -1
- metadata +43 -36
- data/.github/ISSUE_TEMPLATE/bug_report.md +0 -20
- data/.github/contributing.md +0 -32
- data/.github/workflows/ci.yml +0 -41
- data/.gitignore +0 -13
- data/.standard.yml +0 -20
- data/3.0-Upgrade.md +0 -70
- data/4.0-Upgrade.md +0 -53
- data/5.0-Upgrade.md +0 -56
- data/6.0-Upgrade.md +0 -72
- data/COMM-LICENSE +0 -97
- data/Ent-2.0-Upgrade.md +0 -37
- data/Ent-Changes.md +0 -281
- data/Gemfile +0 -24
- data/Gemfile.lock +0 -192
- 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-5.0-Upgrade.md +0 -25
- data/Pro-Changes.md +0 -805
- data/Rakefile +0 -10
- data/code_of_conduct.md +0 -50
- data/lib/generators/sidekiq/worker_generator.rb +0 -57
- data/lib/sidekiq/exception_handler.rb +0 -27
@@ -0,0 +1,69 @@
|
|
1
|
+
<script type="text/javascript" src="<%= root_path %>javascripts/chart.min.js"></script>
|
2
|
+
<script type="text/javascript" src="<%= root_path %>javascripts/chartjs-plugin-annotation.min.js"></script>
|
3
|
+
<script type="text/javascript" src="<%= root_path %>javascripts/metrics.js"></script>
|
4
|
+
|
5
|
+
<h2>Total execution time</h2>
|
6
|
+
|
7
|
+
<%
|
8
|
+
table_limit = 20
|
9
|
+
chart_limit = 5
|
10
|
+
job_results = @query_result.job_results.sort_by { |(kls, jr)| jr.totals["s"] }.reverse.first(table_limit)
|
11
|
+
visible_kls = job_results.first(chart_limit).map(&:first)
|
12
|
+
%>
|
13
|
+
|
14
|
+
<canvas id="job-metrics-overview-chart"></canvas>
|
15
|
+
|
16
|
+
<script>
|
17
|
+
window.jobMetricsChart = new JobMetricsOverviewChart(
|
18
|
+
"job-metrics-overview-chart",
|
19
|
+
<%= Sidekiq.dump_json({
|
20
|
+
series: job_results.map { |(kls, jr)| [kls, jr.dig("series", "s")] }.to_h,
|
21
|
+
marks: @query_result.marks.map { |m| [m.bucket, m.label] },
|
22
|
+
visible: visible_kls,
|
23
|
+
labels: @query_result.buckets,
|
24
|
+
}) %>
|
25
|
+
)
|
26
|
+
</script>
|
27
|
+
|
28
|
+
<h2>Most Time-Consuming Jobs</h2>
|
29
|
+
|
30
|
+
<div class="table_container">
|
31
|
+
<table class="table table-bordered table-striped table-hover">
|
32
|
+
<tbody>
|
33
|
+
<tr>
|
34
|
+
<th><%= t('Name') %></th>
|
35
|
+
<th><%= t('Processed') %></th>
|
36
|
+
<th><%= t('Failed') %></th>
|
37
|
+
<th><%= t('ExecutionTime') %></th>
|
38
|
+
<th><%= t('AvgExecutionTime') %></th>
|
39
|
+
</tr>
|
40
|
+
<% if job_results.any? %>
|
41
|
+
<% job_results.each_with_index do |(kls, jr), i| %>
|
42
|
+
<tr>
|
43
|
+
<td>
|
44
|
+
<div class="metrics-swatch-wrapper">
|
45
|
+
<% id = "metrics-swatch-#{kls}" %>
|
46
|
+
<input
|
47
|
+
type="checkbox"
|
48
|
+
id="<%= id %>"
|
49
|
+
class="metrics-swatch"
|
50
|
+
value="<%= kls %>"
|
51
|
+
/>
|
52
|
+
<code><a href="<%= root_path %>metrics/<%= kls %>"><%= kls %></a></code>
|
53
|
+
</div>
|
54
|
+
<script>jobMetricsChart.registerSwatch("<%= id %>")</script>
|
55
|
+
</td>
|
56
|
+
<td><%= jr.dig("totals", "p") %></td>
|
57
|
+
<td><%= jr.dig("totals", "f") %></td>
|
58
|
+
<td><%= jr.dig("totals", "s").round(2) %> seconds</td>
|
59
|
+
<td><%= jr.total_avg("s").round(2) %> seconds</td>
|
60
|
+
</tr>
|
61
|
+
<% end %>
|
62
|
+
<% else %>
|
63
|
+
<tr><td colspan=5><%= t("NoDataFound") %></td></tr>
|
64
|
+
<% end %>
|
65
|
+
</tbody>
|
66
|
+
</table>
|
67
|
+
</div>
|
68
|
+
|
69
|
+
<p><small>Data from <%= @query_result.starts_at %> to <%= @query_result.ends_at %></small></p>
|
@@ -0,0 +1,87 @@
|
|
1
|
+
<script type="text/javascript" src="<%= root_path %>javascripts/chart.min.js"></script>
|
2
|
+
<script type="text/javascript" src="<%= root_path %>javascripts/chartjs-plugin-annotation.min.js"></script>
|
3
|
+
<script type="text/javascript" src="<%= root_path %>javascripts/metrics.js"></script>
|
4
|
+
|
5
|
+
<%
|
6
|
+
job_result = @query_result.job_results[@name]
|
7
|
+
hist_totals = job_result.hist.values.first.zip(*job_result.hist.values[1..-1]).map(&:sum)
|
8
|
+
bucket_labels =Sidekiq::Metrics::Histogram::LABELS
|
9
|
+
bucket_intervals =Sidekiq::Metrics::Histogram::BUCKET_INTERVALS.reverse
|
10
|
+
|
11
|
+
# Replace INFINITY since it can't be represented as JSON
|
12
|
+
bucket_intervals[0] = bucket_intervals[1] * 2
|
13
|
+
%>
|
14
|
+
|
15
|
+
<% if job_result.totals["s"] > 0 %>
|
16
|
+
<div class="header-with-subheader">
|
17
|
+
<h1>
|
18
|
+
<a href="<%= root_path %>/metrics"><%= t(:metrics).to_s.titleize %></a> /
|
19
|
+
<%= h @name %>
|
20
|
+
</h1>
|
21
|
+
<h2>Histogram summary</h2>
|
22
|
+
</div>
|
23
|
+
|
24
|
+
<canvas id="hist-totals-chart"></canvas>
|
25
|
+
|
26
|
+
<script>
|
27
|
+
window.histTotalsChart = new HistTotalsChart(
|
28
|
+
"hist-totals-chart",
|
29
|
+
<%= Sidekiq.dump_json({
|
30
|
+
series: hist_totals,
|
31
|
+
labels: bucket_labels,
|
32
|
+
}) %>
|
33
|
+
)
|
34
|
+
</script>
|
35
|
+
|
36
|
+
<h2>Performance over time</h2>
|
37
|
+
|
38
|
+
<canvas id="hist-bubble-chart"></canvas>
|
39
|
+
|
40
|
+
<script>
|
41
|
+
window.histBubbleChart = new HistBubbleChart(
|
42
|
+
"hist-bubble-chart",
|
43
|
+
<%= Sidekiq.dump_json({
|
44
|
+
hist: job_result.hist,
|
45
|
+
marks: @query_result.marks.map { |m| [m.bucket, m.label] },
|
46
|
+
labels: @query_result.buckets,
|
47
|
+
histIntervals: bucket_intervals,
|
48
|
+
}) %>
|
49
|
+
)
|
50
|
+
</script>
|
51
|
+
|
52
|
+
<div class="table_container">
|
53
|
+
<table class="table table-bordered table-striped table-hover">
|
54
|
+
<tbody>
|
55
|
+
<tr>
|
56
|
+
<th><%= t('Time') %></th>
|
57
|
+
<th><%= t('Processed') %></th>
|
58
|
+
<th><%= t('Failed') %></th>
|
59
|
+
<th><%= t('ExecutionTime') %></th>
|
60
|
+
<th><%= t('AvgExecutionTime') %></th>
|
61
|
+
</tr>
|
62
|
+
<% @query_result.buckets.reverse.each do |bucket| %>
|
63
|
+
<tr>
|
64
|
+
<td><%= bucket %></td>
|
65
|
+
<td><%= job_result.series.dig("p", bucket) %></td>
|
66
|
+
<td><%= job_result.series.dig("f", bucket) %></td>
|
67
|
+
<% if (total_sec = job_result.series.dig("s", bucket)) > 0 %>
|
68
|
+
<td><%= total_sec.round(2) %> seconds</td>
|
69
|
+
<td><%= job_result.series_avg("s")[bucket].round(2) %> seconds</td>
|
70
|
+
<% else %>
|
71
|
+
<td>—</td>
|
72
|
+
<td>—</td>
|
73
|
+
<% end %>
|
74
|
+
</tr>
|
75
|
+
<% end %>
|
76
|
+
</tbody>
|
77
|
+
</table>
|
78
|
+
</div>
|
79
|
+
<p><small>Data from <%= @query_result.starts_at %> to <%= @query_result.ends_at %></small></p>
|
80
|
+
<% else %>
|
81
|
+
<h1>
|
82
|
+
<a href="<%= root_path %>/metrics"><%= t(:metrics).to_s.titleize %></a> /
|
83
|
+
<%= h @name %>
|
84
|
+
</h1>
|
85
|
+
|
86
|
+
<div class="alert alert-success"><%= t('NoJobMetricsFound') %></div>
|
87
|
+
<% end %>
|
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">
|
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,7 @@
|
|
44
44
|
</td>
|
45
45
|
<td>
|
46
46
|
<%= entry.display_class %>
|
47
|
-
<%= display_tags(entry, "
|
47
|
+
<%= display_tags(entry, "dead") %>
|
48
48
|
</td>
|
49
49
|
<td>
|
50
50
|
<div class="args"><%= display_args(entry.display_args) %></div>
|
@@ -58,18 +58,18 @@
|
|
58
58
|
<% end %>
|
59
59
|
</table>
|
60
60
|
</div>
|
61
|
-
<input class="btn btn-primary
|
62
|
-
<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
63
|
</form>
|
64
64
|
|
65
65
|
<% unfiltered? do %>
|
66
66
|
<form action="<%= root_path %>morgue/all/delete" method="post">
|
67
67
|
<%= csrf_tag %>
|
68
|
-
<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') %>" />
|
69
69
|
</form>
|
70
70
|
<form action="<%= root_path %>morgue/all/retry" method="post">
|
71
71
|
<%= csrf_tag %>
|
72
|
-
<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') %>" />
|
73
73
|
</form>
|
74
74
|
<% end %>
|
75
75
|
|
data/web/views/queue.erb
CHANGED
@@ -18,33 +18,37 @@
|
|
18
18
|
<th><a href="<%= url %>?direction=<%= params[:direction] == 'asc' ? 'desc' : 'asc' %>"># <%= sort_direction_label %></a></th>
|
19
19
|
<th><%= t('Job') %></th>
|
20
20
|
<th><%= t('Arguments') %></th>
|
21
|
+
<th><%= t('Context') %></th>
|
21
22
|
<th></th>
|
22
23
|
</thead>
|
23
|
-
<% @
|
24
|
-
<tr>
|
24
|
+
<% @jobs.each_with_index do |job, index| %>
|
25
|
+
<tr title="<%= job.jid %>">
|
25
26
|
<% if params[:direction] == 'asc' %>
|
26
27
|
<td><%= @count * (@current_page - 1) + index + 1 %></td>
|
27
28
|
<% else %>
|
28
29
|
<td><%= @total_size - (@count * (@current_page - 1) + index) %></td>
|
29
30
|
<% end %>
|
30
31
|
<td>
|
31
|
-
<%= h(
|
32
|
-
<%= display_tags(
|
32
|
+
<%= h(job.display_class) %>
|
33
|
+
<%= display_tags(job, nil) %>
|
33
34
|
</td>
|
34
35
|
<td>
|
35
|
-
<% a =
|
36
|
+
<% a = job.display_args %>
|
36
37
|
<% if a.inspect.size > 100 %>
|
37
|
-
<span
|
38
|
-
<button data-toggle="
|
39
|
-
<div class="toggle
|
38
|
+
<span id="job_<%= index %>"><%= h(a.inspect[0..100]) + "... " %></span>
|
39
|
+
<button data-toggle="job_<%= index %>_full" class="btn btn-default btn-xs"><%= t('ShowAll') %></button>
|
40
|
+
<div class="toggle" id="job_<%= index %>_full"><%= display_args(a) %></div>
|
40
41
|
<% else %>
|
41
|
-
<%= display_args(
|
42
|
+
<%= display_args(job.display_args) %>
|
42
43
|
<% end %>
|
43
44
|
</td>
|
45
|
+
<td>
|
46
|
+
<%= h(job["cattr"].inspect) if job["cattr"]&.any? %>
|
47
|
+
</td>
|
44
48
|
<td>
|
45
49
|
<form action="<%= root_path %>queues/<%= CGI.escape(@name) %>/delete" method="post">
|
46
50
|
<%= csrf_tag %>
|
47
|
-
<input name="key_val" value="<%= h
|
51
|
+
<input name="key_val" value="<%= h job.value %>" type="hidden" />
|
48
52
|
<input class="btn btn-danger btn-xs" type="submit" name="delete" value="<%= t('Delete') %>" data-confirm="<%= t('AreYouSure') %>" />
|
49
53
|
</form>
|
50
54
|
</td>
|
@@ -52,4 +56,4 @@
|
|
52
56
|
<% end %>
|
53
57
|
</table>
|
54
58
|
</div>
|
55
|
-
<%= erb :_paging, locals: { url: "#{root_path}queues/#{@name}" } %>
|
59
|
+
<%= erb :_paging, locals: { url: "#{root_path}queues/#{CGI.escape(@name)}" } %>
|
data/web/views/queues.erb
CHANGED
@@ -21,13 +21,13 @@
|
|
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
25
|
|
26
26
|
<% if Sidekiq.pro? %>
|
27
27
|
<% if queue.paused? %>
|
28
|
-
<input class="btn btn-danger
|
28
|
+
<input class="btn btn-danger" type="submit" name="unpause" value="<%= t('Unpause') %>" />
|
29
29
|
<% else %>
|
30
|
-
<input class="btn btn-danger
|
30
|
+
<input class="btn btn-danger" type="submit" name="pause" value="<%= t('Pause') %>" />
|
31
31
|
<% end %>
|
32
32
|
<% end %>
|
33
33
|
</form>
|
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">
|
17
|
+
<table class="table table-striped table-bordered table-hover">
|
18
18
|
<thead>
|
19
19
|
<tr>
|
20
20
|
<th class="table-checkbox checkbox-column">
|
@@ -58,23 +58,23 @@
|
|
58
58
|
<% end %>
|
59
59
|
</table>
|
60
60
|
</div>
|
61
|
-
<input class="btn btn-primary
|
62
|
-
<input class="btn btn-danger
|
63
|
-
<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') %>" />
|
64
64
|
</form>
|
65
65
|
|
66
66
|
<% unfiltered? do %>
|
67
67
|
<form action="<%= root_path %>retries/all/delete" method="post">
|
68
68
|
<%= csrf_tag %>
|
69
|
-
<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') %>" />
|
70
70
|
</form>
|
71
71
|
<form action="<%= root_path %>retries/all/retry" method="post">
|
72
72
|
<%= csrf_tag %>
|
73
|
-
<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
74
|
</form>
|
75
75
|
<form action="<%= root_path %>retries/all/kill" method="post">
|
76
76
|
<%= csrf_tag %>
|
77
|
-
<input class="btn btn-danger
|
77
|
+
<input class="btn btn-danger pull-right flip" type="submit" name="kill" value="<%= t('KillAll') %>" data-confirm="<%= t('AreYouSure') %>" />
|
78
78
|
</form>
|
79
79
|
<% end %>
|
80
80
|
|
data/web/views/retry.erb
CHANGED
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">
|
18
|
+
<table class="table table-striped table-bordered table-hover">
|
19
19
|
<thead>
|
20
20
|
<tr>
|
21
21
|
<th class="checkbox-column">
|
metadata
CHANGED
@@ -1,43 +1,49 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sidekiq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.
|
4
|
+
version: 6.5.6
|
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: 2022-08-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redis
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
+
- - "<"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '5'
|
17
20
|
- - ">="
|
18
21
|
- !ruby/object:Gem::Version
|
19
|
-
version: 4.
|
22
|
+
version: 4.5.0
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
27
|
+
- - "<"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '5'
|
24
30
|
- - ">="
|
25
31
|
- !ruby/object:Gem::Version
|
26
|
-
version: 4.
|
32
|
+
version: 4.5.0
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: connection_pool
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
31
37
|
- - ">="
|
32
38
|
- !ruby/object:Gem::Version
|
33
|
-
version: 2.2.
|
39
|
+
version: 2.2.5
|
34
40
|
type: :runtime
|
35
41
|
prerelease: false
|
36
42
|
version_requirements: !ruby/object:Gem::Requirement
|
37
43
|
requirements:
|
38
44
|
- - ">="
|
39
45
|
- !ruby/object:Gem::Version
|
40
|
-
version: 2.2.
|
46
|
+
version: 2.2.5
|
41
47
|
- !ruby/object:Gem::Dependency
|
42
48
|
name: rack
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -61,66 +67,55 @@ executables:
|
|
61
67
|
extensions: []
|
62
68
|
extra_rdoc_files: []
|
63
69
|
files:
|
64
|
-
- ".github/ISSUE_TEMPLATE/bug_report.md"
|
65
|
-
- ".github/contributing.md"
|
66
|
-
- ".github/workflows/ci.yml"
|
67
|
-
- ".gitignore"
|
68
|
-
- ".standard.yml"
|
69
|
-
- 3.0-Upgrade.md
|
70
|
-
- 4.0-Upgrade.md
|
71
|
-
- 5.0-Upgrade.md
|
72
|
-
- 6.0-Upgrade.md
|
73
|
-
- COMM-LICENSE
|
74
70
|
- Changes.md
|
75
|
-
- Ent-2.0-Upgrade.md
|
76
|
-
- Ent-Changes.md
|
77
|
-
- Gemfile
|
78
|
-
- Gemfile.lock
|
79
71
|
- LICENSE
|
80
|
-
- Pro-2.0-Upgrade.md
|
81
|
-
- Pro-3.0-Upgrade.md
|
82
|
-
- Pro-4.0-Upgrade.md
|
83
|
-
- Pro-5.0-Upgrade.md
|
84
|
-
- Pro-Changes.md
|
85
72
|
- README.md
|
86
|
-
- Rakefile
|
87
73
|
- bin/sidekiq
|
88
74
|
- bin/sidekiqload
|
89
75
|
- bin/sidekiqmon
|
90
|
-
-
|
91
|
-
- lib/generators/sidekiq/templates/
|
92
|
-
- lib/generators/sidekiq/templates/
|
93
|
-
- lib/generators/sidekiq/templates/
|
94
|
-
- lib/generators/sidekiq/worker_generator.rb
|
76
|
+
- lib/generators/sidekiq/job_generator.rb
|
77
|
+
- lib/generators/sidekiq/templates/job.rb.erb
|
78
|
+
- lib/generators/sidekiq/templates/job_spec.rb.erb
|
79
|
+
- lib/generators/sidekiq/templates/job_test.rb.erb
|
95
80
|
- lib/sidekiq.rb
|
96
81
|
- lib/sidekiq/api.rb
|
97
82
|
- lib/sidekiq/cli.rb
|
98
83
|
- lib/sidekiq/client.rb
|
84
|
+
- lib/sidekiq/component.rb
|
99
85
|
- lib/sidekiq/delay.rb
|
100
|
-
- lib/sidekiq/exception_handler.rb
|
101
86
|
- lib/sidekiq/extensions/action_mailer.rb
|
102
87
|
- lib/sidekiq/extensions/active_record.rb
|
103
88
|
- lib/sidekiq/extensions/class_methods.rb
|
104
89
|
- lib/sidekiq/extensions/generic_proxy.rb
|
105
90
|
- lib/sidekiq/fetch.rb
|
91
|
+
- lib/sidekiq/job.rb
|
106
92
|
- lib/sidekiq/job_logger.rb
|
107
93
|
- lib/sidekiq/job_retry.rb
|
94
|
+
- lib/sidekiq/job_util.rb
|
108
95
|
- lib/sidekiq/launcher.rb
|
109
96
|
- lib/sidekiq/logger.rb
|
110
97
|
- lib/sidekiq/manager.rb
|
98
|
+
- lib/sidekiq/metrics/deploy.rb
|
99
|
+
- lib/sidekiq/metrics/query.rb
|
100
|
+
- lib/sidekiq/metrics/shared.rb
|
101
|
+
- lib/sidekiq/metrics/tracking.rb
|
111
102
|
- lib/sidekiq/middleware/chain.rb
|
103
|
+
- lib/sidekiq/middleware/current_attributes.rb
|
112
104
|
- lib/sidekiq/middleware/i18n.rb
|
105
|
+
- lib/sidekiq/middleware/modules.rb
|
113
106
|
- lib/sidekiq/monitor.rb
|
114
107
|
- lib/sidekiq/paginator.rb
|
115
108
|
- lib/sidekiq/processor.rb
|
116
109
|
- lib/sidekiq/rails.rb
|
110
|
+
- lib/sidekiq/redis_client_adapter.rb
|
117
111
|
- lib/sidekiq/redis_connection.rb
|
112
|
+
- lib/sidekiq/ring_buffer.rb
|
118
113
|
- lib/sidekiq/scheduled.rb
|
119
114
|
- lib/sidekiq/sd_notify.rb
|
120
115
|
- lib/sidekiq/systemd.rb
|
121
116
|
- lib/sidekiq/testing.rb
|
122
117
|
- lib/sidekiq/testing/inline.rb
|
123
|
-
- lib/sidekiq/
|
118
|
+
- lib/sidekiq/transaction_aware_client.rb
|
124
119
|
- lib/sidekiq/version.rb
|
125
120
|
- lib/sidekiq/web.rb
|
126
121
|
- lib/sidekiq/web/action.rb
|
@@ -130,11 +125,16 @@ files:
|
|
130
125
|
- lib/sidekiq/web/router.rb
|
131
126
|
- lib/sidekiq/worker.rb
|
132
127
|
- sidekiq.gemspec
|
128
|
+
- web/assets/images/apple-touch-icon.png
|
133
129
|
- web/assets/images/favicon.ico
|
134
130
|
- web/assets/images/logo.png
|
135
131
|
- web/assets/images/status.png
|
136
132
|
- web/assets/javascripts/application.js
|
133
|
+
- web/assets/javascripts/chart.min.js
|
134
|
+
- web/assets/javascripts/chartjs-plugin-annotation.min.js
|
137
135
|
- web/assets/javascripts/dashboard.js
|
136
|
+
- web/assets/javascripts/graph.js
|
137
|
+
- web/assets/javascripts/metrics.js
|
138
138
|
- web/assets/stylesheets/application-dark.css
|
139
139
|
- web/assets/stylesheets/application-rtl.css
|
140
140
|
- web/assets/stylesheets/application.css
|
@@ -179,6 +179,8 @@ files:
|
|
179
179
|
- web/views/dashboard.erb
|
180
180
|
- web/views/dead.erb
|
181
181
|
- web/views/layout.erb
|
182
|
+
- web/views/metrics.erb
|
183
|
+
- web/views/metrics_for_job.erb
|
182
184
|
- web/views/morgue.erb
|
183
185
|
- web/views/queue.erb
|
184
186
|
- web/views/queues.erb
|
@@ -186,10 +188,15 @@ files:
|
|
186
188
|
- web/views/retry.erb
|
187
189
|
- web/views/scheduled.erb
|
188
190
|
- web/views/scheduled_job_info.erb
|
189
|
-
homepage:
|
191
|
+
homepage: https://sidekiq.org
|
190
192
|
licenses:
|
191
193
|
- LGPL-3.0
|
192
|
-
metadata:
|
194
|
+
metadata:
|
195
|
+
homepage_uri: https://sidekiq.org
|
196
|
+
bug_tracker_uri: https://github.com/mperham/sidekiq/issues
|
197
|
+
documentation_uri: https://github.com/mperham/sidekiq/wiki
|
198
|
+
changelog_uri: https://github.com/mperham/sidekiq/blob/main/Changes.md
|
199
|
+
source_code_uri: https://github.com/mperham/sidekiq
|
193
200
|
post_install_message:
|
194
201
|
rdoc_options: []
|
195
202
|
require_paths:
|
@@ -205,7 +212,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
205
212
|
- !ruby/object:Gem::Version
|
206
213
|
version: '0'
|
207
214
|
requirements: []
|
208
|
-
rubygems_version: 3.
|
215
|
+
rubygems_version: 3.2.32
|
209
216
|
signing_key:
|
210
217
|
specification_version: 4
|
211
218
|
summary: Simple, efficient background processing for Ruby
|
@@ -1,20 +0,0 @@
|
|
1
|
-
---
|
2
|
-
name: Bug report
|
3
|
-
about: Create a report to help us improve
|
4
|
-
title: ''
|
5
|
-
labels: ''
|
6
|
-
assignees: ''
|
7
|
-
|
8
|
-
---
|
9
|
-
|
10
|
-
Ruby version:
|
11
|
-
Rails version:
|
12
|
-
Sidekiq / Pro / Enterprise version(s):
|
13
|
-
|
14
|
-
Please include your initializer, sidekiq.yml, and any error message with the full backtrace.
|
15
|
-
|
16
|
-
If you are using an old version, have you checked the changelogs to see if your issue has been fixed in a later version?
|
17
|
-
|
18
|
-
https://github.com/mperham/sidekiq/blob/master/Changes.md
|
19
|
-
https://github.com/mperham/sidekiq/blob/master/Pro-Changes.md
|
20
|
-
https://github.com/mperham/sidekiq/blob/master/Ent-Changes.md
|
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/workflows/ci.yml
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
name: CI
|
2
|
-
|
3
|
-
on:
|
4
|
-
push:
|
5
|
-
branches: [ master ]
|
6
|
-
pull_request:
|
7
|
-
branches: [ master ]
|
8
|
-
|
9
|
-
jobs:
|
10
|
-
test:
|
11
|
-
|
12
|
-
runs-on: ubuntu-latest
|
13
|
-
|
14
|
-
strategy:
|
15
|
-
fail-fast: false
|
16
|
-
matrix:
|
17
|
-
ruby: [2.5, 2.6, 2.7]
|
18
|
-
services:
|
19
|
-
redis:
|
20
|
-
image: redis
|
21
|
-
options: >-
|
22
|
-
--health-cmd "redis-cli ping"
|
23
|
-
--health-interval 10s
|
24
|
-
--health-timeout 5s
|
25
|
-
--health-retries 5
|
26
|
-
ports:
|
27
|
-
- 6379:6379
|
28
|
-
|
29
|
-
steps:
|
30
|
-
- uses: actions/checkout@v2
|
31
|
-
- name: Set up Ruby
|
32
|
-
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
|
33
|
-
# change this to (see https://github.com/ruby/setup-ruby#versioning):
|
34
|
-
uses: ruby/setup-ruby@v1
|
35
|
-
with:
|
36
|
-
bundler-cache: true
|
37
|
-
ruby-version: ${{ matrix.ruby }}
|
38
|
-
- name: Install dependencies
|
39
|
-
run: bundle install
|
40
|
-
- name: Run tests
|
41
|
-
run: bundle exec rake
|
data/.gitignore
DELETED
data/.standard.yml
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
ruby_version: 2.5.0
|
2
|
-
fix: false
|
3
|
-
parallel: true
|
4
|
-
ignore:
|
5
|
-
- test/**/*
|
6
|
-
- examples/**/*
|
7
|
-
- myapp/**/*
|
8
|
-
- 'lib/sidekiq.rb':
|
9
|
-
- Lint/InheritException
|
10
|
-
- 'lib/sidekiq/extensions/**/*':
|
11
|
-
- Style/MethodMissingSuper
|
12
|
-
- Style/MissingRespondToMissing
|
13
|
-
- 'lib/**/*':
|
14
|
-
- Naming/AsciiIdentifiers
|
15
|
-
- Lint/RescueException
|
16
|
-
- Security/YAMLLoad
|
17
|
-
- Naming/AccessorMethodName
|
18
|
-
- Naming/MethodName
|
19
|
-
- Style/GlobalVars
|
20
|
-
- Style/Alias
|