sidekiq 5.2.9 → 7.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (149) hide show
  1. checksums.yaml +4 -4
  2. data/Changes.md +547 -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 +204 -226
  15. data/lib/sidekiq/client.rb +124 -101
  16. data/lib/sidekiq/component.rb +68 -0
  17. data/lib/sidekiq/config.rb +278 -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 +33 -7
  23. data/lib/sidekiq/job_retry.rb +145 -107
  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 +153 -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 +122 -120
  38. data/lib/sidekiq/rails.rb +53 -38
  39. data/lib/sidekiq/redis_client_adapter.rb +96 -0
  40. data/lib/sidekiq/redis_connection.rb +38 -107
  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 +66 -84
  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 +123 -79
  51. data/lib/sidekiq/web/csrf_protection.rb +180 -0
  52. data/lib/sidekiq/web/helpers.rb +137 -106
  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 +92 -182
  57. data/sidekiq.gemspec +25 -16
  58. data/web/assets/images/apple-touch-icon.png +0 -0
  59. data/web/assets/javascripts/application.js +131 -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 +168 -0
  64. data/web/assets/javascripts/dashboard.js +36 -292
  65. data/web/assets/javascripts/metrics.js +264 -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 +102 -522
  69. data/web/locales/ar.yml +71 -65
  70. data/web/locales/cs.yml +62 -62
  71. data/web/locales/da.yml +60 -53
  72. data/web/locales/de.yml +65 -53
  73. data/web/locales/el.yml +43 -24
  74. data/web/locales/en.yml +84 -66
  75. data/web/locales/es.yml +70 -54
  76. data/web/locales/fa.yml +65 -65
  77. data/web/locales/fr.yml +83 -62
  78. data/web/locales/gd.yml +99 -0
  79. data/web/locales/he.yml +65 -64
  80. data/web/locales/hi.yml +59 -59
  81. data/web/locales/it.yml +53 -53
  82. data/web/locales/ja.yml +75 -64
  83. data/web/locales/ko.yml +52 -52
  84. data/web/locales/lt.yml +83 -0
  85. data/web/locales/nb.yml +61 -61
  86. data/web/locales/nl.yml +52 -52
  87. data/web/locales/pl.yml +45 -45
  88. data/web/locales/pt-br.yml +83 -55
  89. data/web/locales/pt.yml +51 -51
  90. data/web/locales/ru.yml +68 -63
  91. data/web/locales/sv.yml +53 -53
  92. data/web/locales/ta.yml +60 -60
  93. data/web/locales/uk.yml +62 -61
  94. data/web/locales/ur.yml +64 -64
  95. data/web/locales/vi.yml +83 -0
  96. data/web/locales/zh-cn.yml +43 -16
  97. data/web/locales/zh-tw.yml +42 -8
  98. data/web/views/_footer.erb +6 -3
  99. data/web/views/_job_info.erb +21 -4
  100. data/web/views/_metrics_period_select.erb +12 -0
  101. data/web/views/_nav.erb +1 -1
  102. data/web/views/_paging.erb +2 -0
  103. data/web/views/_poll_link.erb +3 -6
  104. data/web/views/_summary.erb +7 -7
  105. data/web/views/busy.erb +75 -25
  106. data/web/views/dashboard.erb +58 -18
  107. data/web/views/dead.erb +3 -3
  108. data/web/views/layout.erb +3 -1
  109. data/web/views/metrics.erb +82 -0
  110. data/web/views/metrics_for_job.erb +68 -0
  111. data/web/views/morgue.erb +14 -15
  112. data/web/views/queue.erb +33 -24
  113. data/web/views/queues.erb +13 -3
  114. data/web/views/retries.erb +16 -17
  115. data/web/views/retry.erb +3 -3
  116. data/web/views/scheduled.erb +17 -15
  117. metadata +71 -72
  118. data/.circleci/config.yml +0 -61
  119. data/.github/contributing.md +0 -32
  120. data/.github/issue_template.md +0 -11
  121. data/.gitignore +0 -15
  122. data/.travis.yml +0 -11
  123. data/3.0-Upgrade.md +0 -70
  124. data/4.0-Upgrade.md +0 -53
  125. data/5.0-Upgrade.md +0 -56
  126. data/COMM-LICENSE +0 -97
  127. data/Ent-Changes.md +0 -238
  128. data/Gemfile +0 -23
  129. data/LICENSE +0 -9
  130. data/Pro-2.0-Upgrade.md +0 -138
  131. data/Pro-3.0-Upgrade.md +0 -44
  132. data/Pro-4.0-Upgrade.md +0 -35
  133. data/Pro-Changes.md +0 -759
  134. data/Rakefile +0 -9
  135. data/bin/sidekiqctl +0 -20
  136. data/code_of_conduct.md +0 -50
  137. data/lib/generators/sidekiq/worker_generator.rb +0 -49
  138. data/lib/sidekiq/core_ext.rb +0 -1
  139. data/lib/sidekiq/ctl.rb +0 -221
  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 -220
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>
@@ -21,7 +23,15 @@
21
23
  <td class="delete-confirm">
22
24
  <form action="<%=root_path %>queues/<%= CGI.escape(queue.name) %>" method="post">
23
25
  <%= 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)) %>" />
26
+ <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)) %>" />
27
+
28
+ <% if Sidekiq.pro? %>
29
+ <% if queue.paused? %>
30
+ <input class="btn btn-danger" type="submit" name="unpause" value="<%= t('Unpause') %>" />
31
+ <% else %>
32
+ <input class="btn btn-danger" type="submit" name="pause" value="<%= t('Pause') %>" />
33
+ <% end %>
34
+ <% end %>
25
35
  </form>
26
36
  </td>
27
37
  </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,161 +1,148 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.9
4
+ version: 7.1.3
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: 2020-06-16 00:00:00.000000000 Z
11
+ date: 2023-09-11 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: '4.2'
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: '4.2'
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
42
  name: rack
55
43
  requirement: !ruby/object:Gem::Requirement
56
44
  requirements:
57
- - - "~>"
45
+ - - ">="
58
46
  - !ruby/object:Gem::Version
59
- version: '2.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: '2.0'
54
+ version: 2.2.4
67
55
  - !ruby/object:Gem::Dependency
68
- name: rack-protection
56
+ name: concurrent-ruby
69
57
  requirement: !ruby/object:Gem::Requirement
70
58
  requirements:
71
- - - ">="
59
+ - - "<"
72
60
  - !ruby/object:Gem::Version
73
- version: 1.5.0
61
+ version: '2'
74
62
  type: :runtime
75
63
  prerelease: false
76
64
  version_requirements: !ruby/object:Gem::Requirement
77
65
  requirements:
78
- - - ">="
66
+ - - "<"
79
67
  - !ruby/object:Gem::Version
80
- version: 1.5.0
68
+ version: '2'
81
69
  description: Simple, efficient background processing for Ruby.
82
70
  email:
83
- - mperham@gmail.com
71
+ - info@contribsys.com
84
72
  executables:
85
73
  - sidekiq
86
- - sidekiqctl
74
+ - sidekiqmon
87
75
  extensions: []
88
76
  extra_rdoc_files: []
89
77
  files:
90
- - ".circleci/config.yml"
91
- - ".github/contributing.md"
92
- - ".github/issue_template.md"
93
- - ".gitignore"
94
- - ".travis.yml"
95
- - 3.0-Upgrade.md
96
- - 4.0-Upgrade.md
97
- - 5.0-Upgrade.md
98
- - COMM-LICENSE
99
78
  - Changes.md
100
- - Ent-Changes.md
101
- - Gemfile
102
- - LICENSE
103
- - Pro-2.0-Upgrade.md
104
- - Pro-3.0-Upgrade.md
105
- - Pro-4.0-Upgrade.md
106
- - Pro-Changes.md
79
+ - LICENSE.txt
107
80
  - README.md
108
- - Rakefile
109
81
  - bin/sidekiq
110
- - bin/sidekiqctl
111
82
  - bin/sidekiqload
112
- - code_of_conduct.md
113
- - lib/generators/sidekiq/templates/worker.rb.erb
114
- - lib/generators/sidekiq/templates/worker_spec.rb.erb
115
- - lib/generators/sidekiq/templates/worker_test.rb.erb
116
- - 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
117
88
  - lib/sidekiq.rb
118
89
  - lib/sidekiq/api.rb
90
+ - lib/sidekiq/capsule.rb
119
91
  - lib/sidekiq/cli.rb
120
92
  - lib/sidekiq/client.rb
121
- - lib/sidekiq/core_ext.rb
122
- - lib/sidekiq/ctl.rb
123
- - lib/sidekiq/delay.rb
124
- - lib/sidekiq/exception_handler.rb
125
- - lib/sidekiq/extensions/action_mailer.rb
126
- - lib/sidekiq/extensions/active_record.rb
127
- - lib/sidekiq/extensions/class_methods.rb
128
- - 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
129
97
  - lib/sidekiq/fetch.rb
98
+ - lib/sidekiq/job.rb
130
99
  - lib/sidekiq/job_logger.rb
131
100
  - lib/sidekiq/job_retry.rb
101
+ - lib/sidekiq/job_util.rb
132
102
  - lib/sidekiq/launcher.rb
133
- - lib/sidekiq/logging.rb
103
+ - lib/sidekiq/logger.rb
134
104
  - lib/sidekiq/manager.rb
105
+ - lib/sidekiq/metrics/query.rb
106
+ - lib/sidekiq/metrics/shared.rb
107
+ - lib/sidekiq/metrics/tracking.rb
135
108
  - lib/sidekiq/middleware/chain.rb
109
+ - lib/sidekiq/middleware/current_attributes.rb
136
110
  - lib/sidekiq/middleware/i18n.rb
137
- - lib/sidekiq/middleware/server/active_record.rb
111
+ - lib/sidekiq/middleware/modules.rb
112
+ - lib/sidekiq/monitor.rb
138
113
  - lib/sidekiq/paginator.rb
139
114
  - lib/sidekiq/processor.rb
140
115
  - lib/sidekiq/rails.rb
116
+ - lib/sidekiq/redis_client_adapter.rb
141
117
  - lib/sidekiq/redis_connection.rb
118
+ - lib/sidekiq/ring_buffer.rb
142
119
  - lib/sidekiq/scheduled.rb
120
+ - lib/sidekiq/sd_notify.rb
121
+ - lib/sidekiq/systemd.rb
143
122
  - lib/sidekiq/testing.rb
144
123
  - lib/sidekiq/testing/inline.rb
145
- - lib/sidekiq/util.rb
124
+ - lib/sidekiq/transaction_aware_client.rb
146
125
  - lib/sidekiq/version.rb
147
126
  - lib/sidekiq/web.rb
148
127
  - lib/sidekiq/web/action.rb
149
128
  - lib/sidekiq/web/application.rb
129
+ - lib/sidekiq/web/csrf_protection.rb
150
130
  - lib/sidekiq/web/helpers.rb
151
131
  - lib/sidekiq/web/router.rb
152
- - lib/sidekiq/worker.rb
132
+ - lib/sidekiq/worker_compatibility_alias.rb
153
133
  - sidekiq.gemspec
134
+ - web/assets/images/apple-touch-icon.png
154
135
  - web/assets/images/favicon.ico
155
136
  - web/assets/images/logo.png
156
137
  - web/assets/images/status.png
157
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
158
143
  - web/assets/javascripts/dashboard.js
144
+ - web/assets/javascripts/metrics.js
145
+ - web/assets/stylesheets/application-dark.css
159
146
  - web/assets/stylesheets/application-rtl.css
160
147
  - web/assets/stylesheets/application.css
161
148
  - web/assets/stylesheets/bootstrap-rtl.min.css
@@ -169,11 +156,13 @@ files:
169
156
  - web/locales/es.yml
170
157
  - web/locales/fa.yml
171
158
  - web/locales/fr.yml
159
+ - web/locales/gd.yml
172
160
  - web/locales/he.yml
173
161
  - web/locales/hi.yml
174
162
  - web/locales/it.yml
175
163
  - web/locales/ja.yml
176
164
  - web/locales/ko.yml
165
+ - web/locales/lt.yml
177
166
  - web/locales/nb.yml
178
167
  - web/locales/nl.yml
179
168
  - web/locales/pl.yml
@@ -184,10 +173,12 @@ files:
184
173
  - web/locales/ta.yml
185
174
  - web/locales/uk.yml
186
175
  - web/locales/ur.yml
176
+ - web/locales/vi.yml
187
177
  - web/locales/zh-cn.yml
188
178
  - web/locales/zh-tw.yml
189
179
  - web/views/_footer.erb
190
180
  - web/views/_job_info.erb
181
+ - web/views/_metrics_period_select.erb
191
182
  - web/views/_nav.erb
192
183
  - web/views/_paging.erb
193
184
  - web/views/_poll_link.erb
@@ -197,6 +188,8 @@ files:
197
188
  - web/views/dashboard.erb
198
189
  - web/views/dead.erb
199
190
  - web/views/layout.erb
191
+ - web/views/metrics.erb
192
+ - web/views/metrics_for_job.erb
200
193
  - web/views/morgue.erb
201
194
  - web/views/queue.erb
202
195
  - web/views/queues.erb
@@ -204,11 +197,17 @@ files:
204
197
  - web/views/retry.erb
205
198
  - web/views/scheduled.erb
206
199
  - web/views/scheduled_job_info.erb
207
- homepage: http://sidekiq.org
200
+ homepage: https://sidekiq.org
208
201
  licenses:
209
202
  - LGPL-3.0
210
- metadata: {}
211
- post_install_message:
203
+ metadata:
204
+ homepage_uri: https://sidekiq.org
205
+ bug_tracker_uri: https://github.com/sidekiq/sidekiq/issues
206
+ documentation_uri: https://github.com/sidekiq/sidekiq/wiki
207
+ changelog_uri: https://github.com/sidekiq/sidekiq/blob/main/Changes.md
208
+ source_code_uri: https://github.com/sidekiq/sidekiq
209
+ rubygems_mfa_required: 'true'
210
+ post_install_message:
212
211
  rdoc_options: []
213
212
  require_paths:
214
213
  - lib
@@ -216,15 +215,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
216
215
  requirements:
217
216
  - - ">="
218
217
  - !ruby/object:Gem::Version
219
- version: 2.2.2
218
+ version: 2.7.0
220
219
  required_rubygems_version: !ruby/object:Gem::Requirement
221
220
  requirements:
222
221
  - - ">="
223
222
  - !ruby/object:Gem::Version
224
223
  version: '0'
225
224
  requirements: []
226
- rubygems_version: 3.1.2
227
- signing_key:
225
+ rubygems_version: 3.4.7
226
+ signing_key:
228
227
  specification_version: 4
229
228
  summary: Simple, efficient background processing for Ruby
230
229
  test_files: []
data/.circleci/config.yml DELETED
@@ -1,61 +0,0 @@
1
- version: 2
2
- references:
3
- unit: &unit
4
- run:
5
- name: Run test suite
6
- command: bundle exec rake
7
- restore: &restore
8
- restore_cache:
9
- keys:
10
- - v1-dependencies-{{ checksum "Gemfile.lock" }}
11
- # fallback to using the latest cache if no exact match is found
12
- - v1-dependencies-
13
- bundle: &bundle
14
- run:
15
- name: install dependencies
16
- command: |
17
- bundle install --jobs=4 --retry=3 --path vendor/bundle
18
- save: &save
19
- save_cache:
20
- paths:
21
- - ./vendor/bundle
22
- key: v1-dependencies-{{ checksum "Gemfile.lock" }}
23
- jobs:
24
- "ruby-2.5":
25
- docker:
26
- - image: circleci/ruby:2.5
27
- - image: circleci/redis:4.0
28
- steps:
29
- - checkout
30
- - <<: *restore
31
- - <<: *bundle
32
- - <<: *save
33
- - <<: *unit
34
- "ruby-2.6":
35
- docker:
36
- - image: circleci/ruby:2.6
37
- - image: circleci/redis:4.0
38
- steps:
39
- - checkout
40
- - <<: *restore
41
- - <<: *bundle
42
- - <<: *save
43
- - <<: *unit
44
- "jruby":
45
- docker:
46
- - image: circleci/jruby:latest
47
- - image: circleci/redis:4.0
48
- steps:
49
- - checkout
50
- - <<: *restore
51
- - <<: *bundle
52
- - <<: *save
53
- - <<: *unit
54
-
55
- workflows:
56
- version: 2
57
- build:
58
- jobs:
59
- - "ruby-2.5"
60
- - "ruby-2.6"
61
- - "jruby"
@@ -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