sidekiq 5.2.2 → 7.2.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.

Files changed (149) hide show
  1. checksums.yaml +5 -5
  2. data/Changes.md +657 -8
  3. data/LICENSE.txt +9 -0
  4. data/README.md +47 -50
  5. data/bin/sidekiq +22 -3
  6. data/bin/sidekiqload +213 -115
  7. data/bin/sidekiqmon +11 -0
  8. data/lib/generators/sidekiq/job_generator.rb +57 -0
  9. data/lib/generators/sidekiq/templates/{worker.rb.erb → job.rb.erb} +2 -2
  10. data/lib/generators/sidekiq/templates/{worker_spec.rb.erb → job_spec.rb.erb} +1 -1
  11. data/lib/generators/sidekiq/templates/{worker_test.rb.erb → job_test.rb.erb} +1 -1
  12. data/lib/sidekiq/api.rb +558 -353
  13. data/lib/sidekiq/capsule.rb +127 -0
  14. data/lib/sidekiq/cli.rb +238 -260
  15. data/lib/sidekiq/client.rb +127 -102
  16. data/lib/sidekiq/component.rb +68 -0
  17. data/lib/sidekiq/config.rb +287 -0
  18. data/lib/sidekiq/deploy.rb +62 -0
  19. data/lib/sidekiq/embedded.rb +61 -0
  20. data/lib/sidekiq/fetch.rb +49 -42
  21. data/lib/sidekiq/job.rb +374 -0
  22. data/lib/sidekiq/job_logger.rb +35 -9
  23. data/lib/sidekiq/job_retry.rb +162 -102
  24. data/lib/sidekiq/job_util.rb +107 -0
  25. data/lib/sidekiq/launcher.rb +203 -105
  26. data/lib/sidekiq/logger.rb +131 -0
  27. data/lib/sidekiq/manager.rb +43 -46
  28. data/lib/sidekiq/metrics/query.rb +155 -0
  29. data/lib/sidekiq/metrics/shared.rb +95 -0
  30. data/lib/sidekiq/metrics/tracking.rb +136 -0
  31. data/lib/sidekiq/middleware/chain.rb +113 -56
  32. data/lib/sidekiq/middleware/current_attributes.rb +95 -0
  33. data/lib/sidekiq/middleware/i18n.rb +7 -7
  34. data/lib/sidekiq/middleware/modules.rb +21 -0
  35. data/lib/sidekiq/monitor.rb +146 -0
  36. data/lib/sidekiq/paginator.rb +28 -16
  37. data/lib/sidekiq/processor.rb +127 -118
  38. data/lib/sidekiq/rails.rb +50 -39
  39. data/lib/sidekiq/redis_client_adapter.rb +111 -0
  40. data/lib/sidekiq/redis_connection.rb +40 -89
  41. data/lib/sidekiq/ring_buffer.rb +29 -0
  42. data/lib/sidekiq/scheduled.rb +111 -49
  43. data/lib/sidekiq/sd_notify.rb +149 -0
  44. data/lib/sidekiq/systemd.rb +24 -0
  45. data/lib/sidekiq/testing/inline.rb +6 -5
  46. data/lib/sidekiq/testing.rb +90 -89
  47. data/lib/sidekiq/transaction_aware_client.rb +44 -0
  48. data/lib/sidekiq/version.rb +3 -1
  49. data/lib/sidekiq/web/action.rb +15 -11
  50. data/lib/sidekiq/web/application.rb +189 -79
  51. data/lib/sidekiq/web/csrf_protection.rb +180 -0
  52. data/lib/sidekiq/web/helpers.rb +160 -114
  53. data/lib/sidekiq/web/router.rb +23 -19
  54. data/lib/sidekiq/web.rb +68 -107
  55. data/lib/sidekiq/worker_compatibility_alias.rb +13 -0
  56. data/lib/sidekiq.rb +94 -182
  57. data/sidekiq.gemspec +25 -18
  58. data/web/assets/images/apple-touch-icon.png +0 -0
  59. data/web/assets/javascripts/application.js +146 -61
  60. data/web/assets/javascripts/base-charts.js +106 -0
  61. data/web/assets/javascripts/chart.min.js +13 -0
  62. data/web/assets/javascripts/chartjs-plugin-annotation.min.js +7 -0
  63. data/web/assets/javascripts/dashboard-charts.js +182 -0
  64. data/web/assets/javascripts/dashboard.js +35 -283
  65. data/web/assets/javascripts/metrics.js +298 -0
  66. data/web/assets/stylesheets/application-dark.css +147 -0
  67. data/web/assets/stylesheets/application-rtl.css +2 -95
  68. data/web/assets/stylesheets/application.css +143 -521
  69. data/web/assets/stylesheets/bootstrap.css +1 -1
  70. data/web/locales/ar.yml +71 -65
  71. data/web/locales/cs.yml +62 -62
  72. data/web/locales/da.yml +60 -53
  73. data/web/locales/de.yml +65 -53
  74. data/web/locales/el.yml +43 -24
  75. data/web/locales/en.yml +86 -66
  76. data/web/locales/es.yml +70 -54
  77. data/web/locales/fa.yml +65 -65
  78. data/web/locales/fr.yml +83 -62
  79. data/web/locales/gd.yml +99 -0
  80. data/web/locales/he.yml +65 -64
  81. data/web/locales/hi.yml +59 -59
  82. data/web/locales/it.yml +53 -53
  83. data/web/locales/ja.yml +75 -64
  84. data/web/locales/ko.yml +52 -52
  85. data/web/locales/lt.yml +83 -0
  86. data/web/locales/nb.yml +61 -61
  87. data/web/locales/nl.yml +52 -52
  88. data/web/locales/pl.yml +45 -45
  89. data/web/locales/pt-br.yml +83 -55
  90. data/web/locales/pt.yml +51 -51
  91. data/web/locales/ru.yml +68 -63
  92. data/web/locales/sv.yml +53 -53
  93. data/web/locales/ta.yml +60 -60
  94. data/web/locales/uk.yml +62 -61
  95. data/web/locales/ur.yml +64 -64
  96. data/web/locales/vi.yml +83 -0
  97. data/web/locales/zh-cn.yml +43 -16
  98. data/web/locales/zh-tw.yml +42 -8
  99. data/web/views/_footer.erb +6 -3
  100. data/web/views/_job_info.erb +21 -4
  101. data/web/views/_metrics_period_select.erb +12 -0
  102. data/web/views/_nav.erb +4 -18
  103. data/web/views/_paging.erb +2 -0
  104. data/web/views/_poll_link.erb +3 -6
  105. data/web/views/_summary.erb +7 -7
  106. data/web/views/busy.erb +77 -27
  107. data/web/views/dashboard.erb +48 -18
  108. data/web/views/dead.erb +3 -3
  109. data/web/views/filtering.erb +7 -0
  110. data/web/views/layout.erb +3 -1
  111. data/web/views/metrics.erb +91 -0
  112. data/web/views/metrics_for_job.erb +59 -0
  113. data/web/views/morgue.erb +14 -15
  114. data/web/views/queue.erb +33 -24
  115. data/web/views/queues.erb +19 -5
  116. data/web/views/retries.erb +16 -17
  117. data/web/views/retry.erb +3 -3
  118. data/web/views/scheduled.erb +17 -15
  119. metadata +80 -65
  120. data/.github/contributing.md +0 -32
  121. data/.github/issue_template.md +0 -11
  122. data/.gitignore +0 -13
  123. data/.travis.yml +0 -14
  124. data/3.0-Upgrade.md +0 -70
  125. data/4.0-Upgrade.md +0 -53
  126. data/5.0-Upgrade.md +0 -56
  127. data/COMM-LICENSE +0 -95
  128. data/Ent-Changes.md +0 -221
  129. data/Gemfile +0 -14
  130. data/LICENSE +0 -9
  131. data/Pro-2.0-Upgrade.md +0 -138
  132. data/Pro-3.0-Upgrade.md +0 -44
  133. data/Pro-4.0-Upgrade.md +0 -35
  134. data/Pro-Changes.md +0 -746
  135. data/Rakefile +0 -8
  136. data/bin/sidekiqctl +0 -99
  137. data/code_of_conduct.md +0 -50
  138. data/lib/generators/sidekiq/worker_generator.rb +0 -49
  139. data/lib/sidekiq/core_ext.rb +0 -1
  140. data/lib/sidekiq/delay.rb +0 -42
  141. data/lib/sidekiq/exception_handler.rb +0 -29
  142. data/lib/sidekiq/extensions/action_mailer.rb +0 -57
  143. data/lib/sidekiq/extensions/active_record.rb +0 -40
  144. data/lib/sidekiq/extensions/class_methods.rb +0 -40
  145. data/lib/sidekiq/extensions/generic_proxy.rb +0 -31
  146. data/lib/sidekiq/logging.rb +0 -122
  147. data/lib/sidekiq/middleware/server/active_record.rb +0 -23
  148. data/lib/sidekiq/util.rb +0 -66
  149. data/lib/sidekiq/worker.rb +0 -204
data/web/views/queue.erb CHANGED
@@ -1,41 +1,50 @@
1
- <header class="row">
2
- <div class="col-sm-5">
3
- <h3>
4
- <%= t('CurrentMessagesInQueue', :queue => h(@name)) %>
5
- <% if @queue.paused? %>
6
- <span class="label label-danger"><%= t('Paused') %></span>
7
- <% end %>
8
- <span class="badge badge-secondary"><%= number_with_delimiter(@total_size) %></span>
9
- </h3>
10
- </div>
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>
14
+ <th><a href="<%= url %>?direction=<%= params[:direction] == 'asc' ? 'desc' : 'asc' %>"># <%= sort_direction_label %></a></th>
18
15
  <th><%= t('Job') %></th>
19
16
  <th><%= t('Arguments') %></th>
17
+ <th><%= t('Context') %></th>
20
18
  <th></th>
21
19
  </thead>
22
- <% @messages.each_with_index do |msg, index| %>
23
- <tr>
24
- <td><%= h(msg.display_class) %></td>
20
+ <% @jobs.each_with_index do |job, index| %>
21
+ <tr title="<%= job.jid %>">
22
+ <% if params[:direction] == 'asc' %>
23
+ <td><%= @count * (@current_page - 1) + index + 1 %></td>
24
+ <% else %>
25
+ <td><%= @total_size - (@count * (@current_page - 1) + index) %></td>
26
+ <% end %>
27
+ <td>
28
+ <%= h(job.display_class) %>
29
+ <%= display_tags(job, nil) %>
30
+ </td>
25
31
  <td>
26
- <% a = msg.display_args %>
32
+ <% a = job.display_args %>
27
33
  <% if a.inspect.size > 100 %>
28
- <span class="worker_<%= index %>"><%= h(a.inspect[0..100]) + "... " %></span>
29
- <button data-toggle="collapse" data-target=".worker_<%= index %>" class="btn btn-default btn-xs"><%= t('ShowAll') %></button>
30
- <div class="toggle worker_<%= index %>"><%= display_args(a) %></div>
34
+ <span id="job_<%= index %>"><%= h(a.inspect[0..100]) + "... " %></span>
35
+ <button data-toggle="job_<%= index %>_full" class="btn btn-default btn-xs"><%= t('ShowAll') %></button>
36
+ <div class="toggle" id="job_<%= index %>_full"><%= display_args(a) %></div>
31
37
  <% else %>
32
- <%= display_args(msg.display_args) %>
38
+ <%= display_args(job.display_args) %>
33
39
  <% end %>
34
40
  </td>
41
+ <td>
42
+ <%= h(job["cattr"].inspect) if job["cattr"]&.any? %>
43
+ </td>
35
44
  <td>
36
45
  <form action="<%= root_path %>queues/<%= CGI.escape(@name) %>/delete" method="post">
37
46
  <%= csrf_tag %>
38
- <input name="key_val" value="<%= h msg.value %>" type="hidden" />
47
+ <input name="key_val" value="<%= h job.value %>" type="hidden" />
39
48
  <input class="btn btn-danger btn-xs" type="submit" name="delete" value="<%= t('Delete') %>" data-confirm="<%= t('AreYouSure') %>" />
40
49
  </form>
41
50
  </td>
@@ -43,4 +52,4 @@
43
52
  <% end %>
44
53
  </table>
45
54
  </div>
46
- <%= 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,9 @@
1
- <h3><%= t('Queues') %></h3>
1
+ <div class="header-container">
2
+ <h1><%= t('Queues') %></h1>
3
+ </div>
2
4
 
3
5
  <div class="table_container">
4
- <table class="queues table table-hover table-bordered table-striped table-white">
6
+ <table class="queues table table-hover table-bordered table-striped">
5
7
  <thead>
6
8
  <th><%= t('Queue') %></th>
7
9
  <th><%= t('Size') %></th>
@@ -16,12 +18,24 @@
16
18
  <span class="label label-danger"><%= t('Paused') %></span>
17
19
  <% end %>
18
20
  </td>
19
- <td><%= number_with_delimiter(queue.size) %> </td>
20
- <td><%= number_with_delimiter(queue.latency.round(2)) %> </td>
21
+ <td class="num"><%= number_with_delimiter(queue.size) %> </td>
22
+ <td class="num">
23
+ <% queue_latency = queue.latency %>
24
+ <%= (queue_latency < 60) ? '' : " (#{relative_time(Time.at(Time.now.to_f - queue_latency))})" %>
25
+ <%= number_with_delimiter(queue_latency, precision: 2) %>
26
+ </td>
21
27
  <td class="delete-confirm">
22
28
  <form action="<%=root_path %>queues/<%= CGI.escape(queue.name) %>" method="post">
23
29
  <%= csrf_tag %>
24
- <input class="btn btn-danger btn-xs" type="submit" name="delete" value="<%= t('Delete') %>" data-confirm="<%= t('AreYouSureDeleteQueue', :queue => h(queue.name)) %>" />
30
+ <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)) %>" />
31
+
32
+ <% if Sidekiq.pro? %>
33
+ <% if queue.paused? %>
34
+ <input class="btn btn-danger" type="submit" name="unpause" value="<%= t('Unpause') %>" />
35
+ <% else %>
36
+ <input class="btn btn-danger" type="submit" name="pause" value="<%= t('Pause') %>" />
37
+ <% end %>
38
+ <% end %>
25
39
  </form>
26
40
  </td>
27
41
  </tr>
@@ -1,20 +1,16 @@
1
- <header class="row">
2
- <div class="col-sm-5">
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
- <div class="col-sm-4">
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
- </header>
7
+ </div>
12
8
 
13
9
  <% if @retries.size > 0 %>
14
10
  <form action="<%= root_path %>retries" method="post">
15
11
  <%= csrf_tag %>
16
12
  <div class="table_container">
17
- <table class="table table-striped table-bordered table-white">
13
+ <table class="table table-striped table-bordered table-hover">
18
14
  <thead>
19
15
  <tr>
20
16
  <th class="table-checkbox checkbox-column">
@@ -34,7 +30,7 @@
34
30
  <tr>
35
31
  <td class="table-checkbox">
36
32
  <label>
37
- <input type='checkbox' name='key[]' value='<%= job_params(entry.item, entry.score) %>' />
33
+ <input type='checkbox' name='key[]' value='<%= job_params(entry.item, entry.score) %>' class='shift_clickable' />
38
34
  </label>
39
35
  </td>
40
36
  <td>
@@ -44,7 +40,10 @@
44
40
  <td>
45
41
  <a href="<%= root_path %>queues/<%= entry.queue %>"><%= entry.queue %></a>
46
42
  </td>
47
- <td><%= entry.display_class %></td>
43
+ <td>
44
+ <%= entry.display_class %>
45
+ <%= display_tags(entry, "retries") %>
46
+ </td>
48
47
  <td>
49
48
  <div class="args"><%= display_args(entry.display_args) %></div>
50
49
  </td>
@@ -55,23 +54,23 @@
55
54
  <% end %>
56
55
  </table>
57
56
  </div>
58
- <input class="btn btn-primary btn-xs pull-left flip" type="submit" name="retry" value="<%= t('RetryNow') %>" />
59
- <input class="btn btn-danger btn-xs pull-left flip" type="submit" name="delete" value="<%= t('Delete') %>" />
60
- <input class="btn btn-danger btn-xs pull-left flip" type="submit" name="kill" value="<%= t('Kill') %>" />
57
+ <input class="btn btn-primary pull-left flip" type="submit" name="retry" value="<%= t('RetryNow') %>" />
58
+ <input class="btn btn-danger pull-left flip" type="submit" name="delete" value="<%= t('Delete') %>" />
59
+ <input class="btn btn-danger pull-left flip" type="submit" name="kill" value="<%= t('Kill') %>" />
61
60
  </form>
62
61
 
63
62
  <% unfiltered? do %>
64
63
  <form action="<%= root_path %>retries/all/delete" method="post">
65
64
  <%= csrf_tag %>
66
- <input class="btn btn-danger btn-xs pull-right flip" type="submit" name="delete" value="<%= t('DeleteAll') %>" data-confirm="<%= t('AreYouSure') %>" />
65
+ <input class="btn btn-danger pull-right flip" type="submit" name="delete" value="<%= t('DeleteAll') %>" data-confirm="<%= t('AreYouSure') %>" />
67
66
  </form>
68
67
  <form action="<%= root_path %>retries/all/retry" method="post">
69
68
  <%= csrf_tag %>
70
- <input class="btn btn-danger btn-xs pull-right flip" type="submit" name="retry" value="<%= t('RetryAll') %>" data-confirm="<%= t('AreYouSure') %>" />
69
+ <input class="btn btn-danger pull-right flip" type="submit" name="retry" value="<%= t('RetryAll') %>" data-confirm="<%= t('AreYouSure') %>" />
71
70
  </form>
72
71
  <form action="<%= root_path %>retries/all/kill" method="post">
73
72
  <%= csrf_tag %>
74
- <input class="btn btn-danger btn-xs pull-right flip" type="submit" name="kill" value="<%= t('KillAll') %>" data-confirm="<%= t('AreYouSure') %>" />
73
+ <input class="btn btn-danger pull-right flip" type="submit" name="kill" value="<%= t('KillAll') %>" data-confirm="<%= t('AreYouSure') %>" />
75
74
  </form>
76
75
  <% end %>
77
76
 
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 !@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 %>
@@ -1,25 +1,22 @@
1
- <header class="row">
2
- <div class="col-sm-5">
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
- <div class="col-sm-4">
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
- </header>
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
- <table class="table table-striped table-bordered table-white">
13
+ <table class="table table-striped table-bordered table-hover">
19
14
  <thead>
20
15
  <tr>
21
- <th class="checkbox-column">
22
- <input type="checkbox" class="check_all" />
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
- <input type='checkbox' name='key[]' value='<%= job_params(entry.item, entry.score) %>' />
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>
@@ -38,7 +37,10 @@
38
37
  <td>
39
38
  <a href="<%= root_path %>queues/<%= entry.queue %>"><%= entry.queue %></a>
40
39
  </td>
41
- <td><%= entry.display_class %></td>
40
+ <td>
41
+ <%= entry.display_class %>
42
+ <%= display_tags(entry, "scheduled") %>
43
+ </td>
42
44
  <td>
43
45
  <div class="args"><%= display_args(entry.display_args) %></div>
44
46
  </td>
metadata CHANGED
@@ -1,145 +1,148 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.2
4
+ version: 7.2.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: 2018-09-17 00:00:00.000000000 Z
11
+ date: 2023-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: redis
14
+ name: redis-client
15
15
  requirement: !ruby/object:Gem::Requirement
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: 0.14.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: 0.14.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
- version: 2.2.2
33
+ version: 2.3.0
43
34
  type: :runtime
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
- version: 2.2.2
40
+ version: 2.3.0
53
41
  - !ruby/object:Gem::Dependency
54
- name: rack-protection
42
+ name: rack
55
43
  requirement: !ruby/object:Gem::Requirement
56
44
  requirements:
57
45
  - - ">="
58
46
  - !ruby/object:Gem::Version
59
- version: 1.5.0
47
+ version: 2.2.4
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.2.4
55
+ - !ruby/object:Gem::Dependency
56
+ name: concurrent-ruby
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "<"
60
+ - !ruby/object:Gem::Version
61
+ version: '2'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "<"
67
+ - !ruby/object:Gem::Version
68
+ version: '2'
67
69
  description: Simple, efficient background processing for Ruby.
68
70
  email:
69
- - mperham@gmail.com
71
+ - info@contribsys.com
70
72
  executables:
71
73
  - sidekiq
72
- - sidekiqctl
74
+ - sidekiqmon
73
75
  extensions: []
74
76
  extra_rdoc_files: []
75
77
  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
78
  - Changes.md
85
- - Ent-Changes.md
86
- - Gemfile
87
- - LICENSE
88
- - Pro-2.0-Upgrade.md
89
- - Pro-3.0-Upgrade.md
90
- - Pro-4.0-Upgrade.md
91
- - Pro-Changes.md
79
+ - LICENSE.txt
92
80
  - README.md
93
- - Rakefile
94
81
  - bin/sidekiq
95
- - bin/sidekiqctl
96
82
  - bin/sidekiqload
97
- - code_of_conduct.md
98
- - lib/generators/sidekiq/templates/worker.rb.erb
99
- - lib/generators/sidekiq/templates/worker_spec.rb.erb
100
- - lib/generators/sidekiq/templates/worker_test.rb.erb
101
- - lib/generators/sidekiq/worker_generator.rb
83
+ - bin/sidekiqmon
84
+ - lib/generators/sidekiq/job_generator.rb
85
+ - lib/generators/sidekiq/templates/job.rb.erb
86
+ - lib/generators/sidekiq/templates/job_spec.rb.erb
87
+ - lib/generators/sidekiq/templates/job_test.rb.erb
102
88
  - lib/sidekiq.rb
103
89
  - lib/sidekiq/api.rb
90
+ - lib/sidekiq/capsule.rb
104
91
  - lib/sidekiq/cli.rb
105
92
  - lib/sidekiq/client.rb
106
- - lib/sidekiq/core_ext.rb
107
- - lib/sidekiq/delay.rb
108
- - lib/sidekiq/exception_handler.rb
109
- - lib/sidekiq/extensions/action_mailer.rb
110
- - lib/sidekiq/extensions/active_record.rb
111
- - lib/sidekiq/extensions/class_methods.rb
112
- - lib/sidekiq/extensions/generic_proxy.rb
93
+ - lib/sidekiq/component.rb
94
+ - lib/sidekiq/config.rb
95
+ - lib/sidekiq/deploy.rb
96
+ - lib/sidekiq/embedded.rb
113
97
  - lib/sidekiq/fetch.rb
98
+ - lib/sidekiq/job.rb
114
99
  - lib/sidekiq/job_logger.rb
115
100
  - lib/sidekiq/job_retry.rb
101
+ - lib/sidekiq/job_util.rb
116
102
  - lib/sidekiq/launcher.rb
117
- - lib/sidekiq/logging.rb
103
+ - lib/sidekiq/logger.rb
118
104
  - lib/sidekiq/manager.rb
105
+ - lib/sidekiq/metrics/query.rb
106
+ - lib/sidekiq/metrics/shared.rb
107
+ - lib/sidekiq/metrics/tracking.rb
119
108
  - lib/sidekiq/middleware/chain.rb
109
+ - lib/sidekiq/middleware/current_attributes.rb
120
110
  - lib/sidekiq/middleware/i18n.rb
121
- - lib/sidekiq/middleware/server/active_record.rb
111
+ - lib/sidekiq/middleware/modules.rb
112
+ - lib/sidekiq/monitor.rb
122
113
  - lib/sidekiq/paginator.rb
123
114
  - lib/sidekiq/processor.rb
124
115
  - lib/sidekiq/rails.rb
116
+ - lib/sidekiq/redis_client_adapter.rb
125
117
  - lib/sidekiq/redis_connection.rb
118
+ - lib/sidekiq/ring_buffer.rb
126
119
  - lib/sidekiq/scheduled.rb
120
+ - lib/sidekiq/sd_notify.rb
121
+ - lib/sidekiq/systemd.rb
127
122
  - lib/sidekiq/testing.rb
128
123
  - lib/sidekiq/testing/inline.rb
129
- - lib/sidekiq/util.rb
124
+ - lib/sidekiq/transaction_aware_client.rb
130
125
  - lib/sidekiq/version.rb
131
126
  - lib/sidekiq/web.rb
132
127
  - lib/sidekiq/web/action.rb
133
128
  - lib/sidekiq/web/application.rb
129
+ - lib/sidekiq/web/csrf_protection.rb
134
130
  - lib/sidekiq/web/helpers.rb
135
131
  - lib/sidekiq/web/router.rb
136
- - lib/sidekiq/worker.rb
132
+ - lib/sidekiq/worker_compatibility_alias.rb
137
133
  - sidekiq.gemspec
134
+ - web/assets/images/apple-touch-icon.png
138
135
  - web/assets/images/favicon.ico
139
136
  - web/assets/images/logo.png
140
137
  - web/assets/images/status.png
141
138
  - web/assets/javascripts/application.js
139
+ - web/assets/javascripts/base-charts.js
140
+ - web/assets/javascripts/chart.min.js
141
+ - web/assets/javascripts/chartjs-plugin-annotation.min.js
142
+ - web/assets/javascripts/dashboard-charts.js
142
143
  - web/assets/javascripts/dashboard.js
144
+ - web/assets/javascripts/metrics.js
145
+ - web/assets/stylesheets/application-dark.css
143
146
  - web/assets/stylesheets/application-rtl.css
144
147
  - web/assets/stylesheets/application.css
145
148
  - web/assets/stylesheets/bootstrap-rtl.min.css
@@ -153,11 +156,13 @@ files:
153
156
  - web/locales/es.yml
154
157
  - web/locales/fa.yml
155
158
  - web/locales/fr.yml
159
+ - web/locales/gd.yml
156
160
  - web/locales/he.yml
157
161
  - web/locales/hi.yml
158
162
  - web/locales/it.yml
159
163
  - web/locales/ja.yml
160
164
  - web/locales/ko.yml
165
+ - web/locales/lt.yml
161
166
  - web/locales/nb.yml
162
167
  - web/locales/nl.yml
163
168
  - web/locales/pl.yml
@@ -168,10 +173,12 @@ files:
168
173
  - web/locales/ta.yml
169
174
  - web/locales/uk.yml
170
175
  - web/locales/ur.yml
176
+ - web/locales/vi.yml
171
177
  - web/locales/zh-cn.yml
172
178
  - web/locales/zh-tw.yml
173
179
  - web/views/_footer.erb
174
180
  - web/views/_job_info.erb
181
+ - web/views/_metrics_period_select.erb
175
182
  - web/views/_nav.erb
176
183
  - web/views/_paging.erb
177
184
  - web/views/_poll_link.erb
@@ -180,7 +187,10 @@ files:
180
187
  - web/views/busy.erb
181
188
  - web/views/dashboard.erb
182
189
  - web/views/dead.erb
190
+ - web/views/filtering.erb
183
191
  - web/views/layout.erb
192
+ - web/views/metrics.erb
193
+ - web/views/metrics_for_job.erb
184
194
  - web/views/morgue.erb
185
195
  - web/views/queue.erb
186
196
  - web/views/queues.erb
@@ -188,11 +198,17 @@ files:
188
198
  - web/views/retry.erb
189
199
  - web/views/scheduled.erb
190
200
  - web/views/scheduled_job_info.erb
191
- homepage: http://sidekiq.org
201
+ homepage: https://sidekiq.org
192
202
  licenses:
193
203
  - LGPL-3.0
194
- metadata: {}
195
- post_install_message:
204
+ metadata:
205
+ homepage_uri: https://sidekiq.org
206
+ bug_tracker_uri: https://github.com/sidekiq/sidekiq/issues
207
+ documentation_uri: https://github.com/sidekiq/sidekiq/wiki
208
+ changelog_uri: https://github.com/sidekiq/sidekiq/blob/main/Changes.md
209
+ source_code_uri: https://github.com/sidekiq/sidekiq
210
+ rubygems_mfa_required: 'true'
211
+ post_install_message:
196
212
  rdoc_options: []
197
213
  require_paths:
198
214
  - lib
@@ -200,16 +216,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
200
216
  requirements:
201
217
  - - ">="
202
218
  - !ruby/object:Gem::Version
203
- version: 2.2.2
219
+ version: 2.7.0
204
220
  required_rubygems_version: !ruby/object:Gem::Requirement
205
221
  requirements:
206
222
  - - ">="
207
223
  - !ruby/object:Gem::Version
208
224
  version: '0'
209
225
  requirements: []
210
- rubyforge_project:
211
- rubygems_version: 2.6.13
212
- signing_key:
226
+ rubygems_version: 3.4.20
227
+ signing_key:
213
228
  specification_version: 4
214
229
  summary: Simple, efficient background processing for Ruby
215
230
  test_files: []
@@ -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.
@@ -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
data/.gitignore DELETED
@@ -1,13 +0,0 @@
1
- .rvmrc
2
- .ruby-version
3
- tags
4
- Gemfile.lock
5
- *.swp
6
- dump.rdb
7
- .rbx
8
- coverage/
9
- vendor/
10
- .bundle/
11
- .sass-cache/
12
- tmp/
13
- pkg/*.gem
data/.travis.yml DELETED
@@ -1,14 +0,0 @@
1
- language: ruby
2
- sudo: false
3
- cache: bundler
4
- services:
5
- - redis-server
6
- before_install:
7
- - gem install bundler
8
- - gem update bundler
9
- rvm:
10
- - 2.2.10
11
- - 2.3.7
12
- - 2.4.4
13
- - 2.5.1
14
- - jruby-9.1.17.0