sidekiq 5.2.6 → 7.1.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 (148) hide show
  1. checksums.yaml +4 -4
  2. data/Changes.md +537 -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 +556 -351
  13. data/lib/sidekiq/capsule.rb +127 -0
  14. data/lib/sidekiq/cli.rb +203 -226
  15. data/lib/sidekiq/client.rb +121 -101
  16. data/lib/sidekiq/component.rb +68 -0
  17. data/lib/sidekiq/config.rb +274 -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 +131 -108
  24. data/lib/sidekiq/job_util.rb +105 -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 +56 -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 +108 -107
  38. data/lib/sidekiq/rails.rb +49 -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 +56 -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 +130 -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 +166 -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 +63 -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 +69 -69
  118. data/.github/contributing.md +0 -32
  119. data/.github/issue_template.md +0 -11
  120. data/.gitignore +0 -15
  121. data/.travis.yml +0 -11
  122. data/3.0-Upgrade.md +0 -70
  123. data/4.0-Upgrade.md +0 -53
  124. data/5.0-Upgrade.md +0 -56
  125. data/COMM-LICENSE +0 -97
  126. data/Ent-Changes.md +0 -238
  127. data/Gemfile +0 -23
  128. data/LICENSE +0 -9
  129. data/Pro-2.0-Upgrade.md +0 -138
  130. data/Pro-3.0-Upgrade.md +0 -44
  131. data/Pro-4.0-Upgrade.md +0 -35
  132. data/Pro-Changes.md +0 -759
  133. data/Rakefile +0 -9
  134. data/bin/sidekiqctl +0 -20
  135. data/code_of_conduct.md +0 -50
  136. data/lib/generators/sidekiq/worker_generator.rb +0 -49
  137. data/lib/sidekiq/core_ext.rb +0 -1
  138. data/lib/sidekiq/ctl.rb +0 -221
  139. data/lib/sidekiq/delay.rb +0 -42
  140. data/lib/sidekiq/exception_handler.rb +0 -29
  141. data/lib/sidekiq/extensions/action_mailer.rb +0 -57
  142. data/lib/sidekiq/extensions/active_record.rb +0 -40
  143. data/lib/sidekiq/extensions/class_methods.rb +0 -40
  144. data/lib/sidekiq/extensions/generic_proxy.rb +0 -31
  145. data/lib/sidekiq/logging.rb +0 -122
  146. data/lib/sidekiq/middleware/server/active_record.rb +0 -23
  147. data/lib/sidekiq/util.rb +0 -66
  148. 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,160 +1,148 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.6
4
+ version: 7.1.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: 2019-04-12 00:00:00.000000000 Z
11
+ date: 2023-05-01 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
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
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
- - ".github/contributing.md"
91
- - ".github/issue_template.md"
92
- - ".gitignore"
93
- - ".travis.yml"
94
- - 3.0-Upgrade.md
95
- - 4.0-Upgrade.md
96
- - 5.0-Upgrade.md
97
- - COMM-LICENSE
98
78
  - Changes.md
99
- - Ent-Changes.md
100
- - Gemfile
101
- - LICENSE
102
- - Pro-2.0-Upgrade.md
103
- - Pro-3.0-Upgrade.md
104
- - Pro-4.0-Upgrade.md
105
- - Pro-Changes.md
79
+ - LICENSE.txt
106
80
  - README.md
107
- - Rakefile
108
81
  - bin/sidekiq
109
- - bin/sidekiqctl
110
82
  - bin/sidekiqload
111
- - code_of_conduct.md
112
- - lib/generators/sidekiq/templates/worker.rb.erb
113
- - lib/generators/sidekiq/templates/worker_spec.rb.erb
114
- - lib/generators/sidekiq/templates/worker_test.rb.erb
115
- - 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
116
88
  - lib/sidekiq.rb
117
89
  - lib/sidekiq/api.rb
90
+ - lib/sidekiq/capsule.rb
118
91
  - lib/sidekiq/cli.rb
119
92
  - lib/sidekiq/client.rb
120
- - lib/sidekiq/core_ext.rb
121
- - lib/sidekiq/ctl.rb
122
- - lib/sidekiq/delay.rb
123
- - lib/sidekiq/exception_handler.rb
124
- - lib/sidekiq/extensions/action_mailer.rb
125
- - lib/sidekiq/extensions/active_record.rb
126
- - lib/sidekiq/extensions/class_methods.rb
127
- - 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
128
97
  - lib/sidekiq/fetch.rb
98
+ - lib/sidekiq/job.rb
129
99
  - lib/sidekiq/job_logger.rb
130
100
  - lib/sidekiq/job_retry.rb
101
+ - lib/sidekiq/job_util.rb
131
102
  - lib/sidekiq/launcher.rb
132
- - lib/sidekiq/logging.rb
103
+ - lib/sidekiq/logger.rb
133
104
  - lib/sidekiq/manager.rb
105
+ - lib/sidekiq/metrics/query.rb
106
+ - lib/sidekiq/metrics/shared.rb
107
+ - lib/sidekiq/metrics/tracking.rb
134
108
  - lib/sidekiq/middleware/chain.rb
109
+ - lib/sidekiq/middleware/current_attributes.rb
135
110
  - lib/sidekiq/middleware/i18n.rb
136
- - lib/sidekiq/middleware/server/active_record.rb
111
+ - lib/sidekiq/middleware/modules.rb
112
+ - lib/sidekiq/monitor.rb
137
113
  - lib/sidekiq/paginator.rb
138
114
  - lib/sidekiq/processor.rb
139
115
  - lib/sidekiq/rails.rb
116
+ - lib/sidekiq/redis_client_adapter.rb
140
117
  - lib/sidekiq/redis_connection.rb
118
+ - lib/sidekiq/ring_buffer.rb
141
119
  - lib/sidekiq/scheduled.rb
120
+ - lib/sidekiq/sd_notify.rb
121
+ - lib/sidekiq/systemd.rb
142
122
  - lib/sidekiq/testing.rb
143
123
  - lib/sidekiq/testing/inline.rb
144
- - lib/sidekiq/util.rb
124
+ - lib/sidekiq/transaction_aware_client.rb
145
125
  - lib/sidekiq/version.rb
146
126
  - lib/sidekiq/web.rb
147
127
  - lib/sidekiq/web/action.rb
148
128
  - lib/sidekiq/web/application.rb
129
+ - lib/sidekiq/web/csrf_protection.rb
149
130
  - lib/sidekiq/web/helpers.rb
150
131
  - lib/sidekiq/web/router.rb
151
- - lib/sidekiq/worker.rb
132
+ - lib/sidekiq/worker_compatibility_alias.rb
152
133
  - sidekiq.gemspec
134
+ - web/assets/images/apple-touch-icon.png
153
135
  - web/assets/images/favicon.ico
154
136
  - web/assets/images/logo.png
155
137
  - web/assets/images/status.png
156
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
157
143
  - web/assets/javascripts/dashboard.js
144
+ - web/assets/javascripts/metrics.js
145
+ - web/assets/stylesheets/application-dark.css
158
146
  - web/assets/stylesheets/application-rtl.css
159
147
  - web/assets/stylesheets/application.css
160
148
  - web/assets/stylesheets/bootstrap-rtl.min.css
@@ -168,11 +156,13 @@ files:
168
156
  - web/locales/es.yml
169
157
  - web/locales/fa.yml
170
158
  - web/locales/fr.yml
159
+ - web/locales/gd.yml
171
160
  - web/locales/he.yml
172
161
  - web/locales/hi.yml
173
162
  - web/locales/it.yml
174
163
  - web/locales/ja.yml
175
164
  - web/locales/ko.yml
165
+ - web/locales/lt.yml
176
166
  - web/locales/nb.yml
177
167
  - web/locales/nl.yml
178
168
  - web/locales/pl.yml
@@ -183,10 +173,12 @@ files:
183
173
  - web/locales/ta.yml
184
174
  - web/locales/uk.yml
185
175
  - web/locales/ur.yml
176
+ - web/locales/vi.yml
186
177
  - web/locales/zh-cn.yml
187
178
  - web/locales/zh-tw.yml
188
179
  - web/views/_footer.erb
189
180
  - web/views/_job_info.erb
181
+ - web/views/_metrics_period_select.erb
190
182
  - web/views/_nav.erb
191
183
  - web/views/_paging.erb
192
184
  - web/views/_poll_link.erb
@@ -196,6 +188,8 @@ files:
196
188
  - web/views/dashboard.erb
197
189
  - web/views/dead.erb
198
190
  - web/views/layout.erb
191
+ - web/views/metrics.erb
192
+ - web/views/metrics_for_job.erb
199
193
  - web/views/morgue.erb
200
194
  - web/views/queue.erb
201
195
  - web/views/queues.erb
@@ -203,11 +197,17 @@ files:
203
197
  - web/views/retry.erb
204
198
  - web/views/scheduled.erb
205
199
  - web/views/scheduled_job_info.erb
206
- homepage: http://sidekiq.org
200
+ homepage: https://sidekiq.org
207
201
  licenses:
208
202
  - LGPL-3.0
209
- metadata: {}
210
- 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:
211
211
  rdoc_options: []
212
212
  require_paths:
213
213
  - lib
@@ -215,15 +215,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
215
215
  requirements:
216
216
  - - ">="
217
217
  - !ruby/object:Gem::Version
218
- version: 2.2.2
218
+ version: 2.7.0
219
219
  required_rubygems_version: !ruby/object:Gem::Requirement
220
220
  requirements:
221
221
  - - ">="
222
222
  - !ruby/object:Gem::Version
223
223
  version: '0'
224
224
  requirements: []
225
- rubygems_version: 3.0.1
226
- signing_key:
225
+ rubygems_version: 3.4.7
226
+ signing_key:
227
227
  specification_version: 4
228
228
  summary: Simple, efficient background processing for Ruby
229
229
  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,15 +0,0 @@
1
- .rvmrc
2
- .ruby-version
3
- tags
4
- Gemfile.lock
5
- gemfiles/*.lock
6
- *.swp
7
- dump.rdb
8
- .rbx
9
- coverage/
10
- vendor/
11
- .bundle/
12
- .sass-cache/
13
- tmp/
14
- pkg/*.gem
15
- .byebug_history
data/.travis.yml DELETED
@@ -1,11 +0,0 @@
1
- language: ruby
2
- sudo: false
3
- cache: bundler
4
- services:
5
- - redis-server
6
- rvm:
7
- - 2.3.7
8
- - 2.4.4
9
- - 2.5.1
10
- - 2.6.0
11
- - jruby-9.2.6.0