sidekiq 5.2.7 → 8.0.5

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.
Files changed (169) hide show
  1. checksums.yaml +4 -4
  2. data/Changes.md +845 -8
  3. data/LICENSE.txt +9 -0
  4. data/README.md +54 -54
  5. data/bin/multi_queue_bench +271 -0
  6. data/bin/sidekiq +22 -3
  7. data/bin/sidekiqload +219 -112
  8. data/bin/sidekiqmon +11 -0
  9. data/bin/webload +69 -0
  10. data/lib/active_job/queue_adapters/sidekiq_adapter.rb +120 -0
  11. data/lib/generators/sidekiq/job_generator.rb +59 -0
  12. data/lib/generators/sidekiq/templates/{worker.rb.erb → job.rb.erb} +2 -2
  13. data/lib/generators/sidekiq/templates/{worker_spec.rb.erb → job_spec.rb.erb} +1 -1
  14. data/lib/generators/sidekiq/templates/{worker_test.rb.erb → job_test.rb.erb} +1 -1
  15. data/lib/sidekiq/api.rb +757 -373
  16. data/lib/sidekiq/capsule.rb +132 -0
  17. data/lib/sidekiq/cli.rb +210 -233
  18. data/lib/sidekiq/client.rb +145 -103
  19. data/lib/sidekiq/component.rb +128 -0
  20. data/lib/sidekiq/config.rb +315 -0
  21. data/lib/sidekiq/deploy.rb +64 -0
  22. data/lib/sidekiq/embedded.rb +64 -0
  23. data/lib/sidekiq/fetch.rb +49 -42
  24. data/lib/sidekiq/iterable_job.rb +56 -0
  25. data/lib/sidekiq/job/interrupt_handler.rb +24 -0
  26. data/lib/sidekiq/job/iterable/active_record_enumerator.rb +53 -0
  27. data/lib/sidekiq/job/iterable/csv_enumerator.rb +47 -0
  28. data/lib/sidekiq/job/iterable/enumerators.rb +135 -0
  29. data/lib/sidekiq/job/iterable.rb +306 -0
  30. data/lib/sidekiq/job.rb +385 -0
  31. data/lib/sidekiq/job_logger.rb +34 -7
  32. data/lib/sidekiq/job_retry.rb +164 -109
  33. data/lib/sidekiq/job_util.rb +113 -0
  34. data/lib/sidekiq/launcher.rb +208 -107
  35. data/lib/sidekiq/logger.rb +80 -0
  36. data/lib/sidekiq/manager.rb +42 -46
  37. data/lib/sidekiq/metrics/query.rb +184 -0
  38. data/lib/sidekiq/metrics/shared.rb +109 -0
  39. data/lib/sidekiq/metrics/tracking.rb +150 -0
  40. data/lib/sidekiq/middleware/chain.rb +113 -56
  41. data/lib/sidekiq/middleware/current_attributes.rb +119 -0
  42. data/lib/sidekiq/middleware/i18n.rb +7 -7
  43. data/lib/sidekiq/middleware/modules.rb +23 -0
  44. data/lib/sidekiq/monitor.rb +147 -0
  45. data/lib/sidekiq/paginator.rb +41 -16
  46. data/lib/sidekiq/processor.rb +146 -127
  47. data/lib/sidekiq/profiler.rb +72 -0
  48. data/lib/sidekiq/rails.rb +46 -43
  49. data/lib/sidekiq/redis_client_adapter.rb +113 -0
  50. data/lib/sidekiq/redis_connection.rb +79 -108
  51. data/lib/sidekiq/ring_buffer.rb +31 -0
  52. data/lib/sidekiq/scheduled.rb +112 -50
  53. data/lib/sidekiq/sd_notify.rb +149 -0
  54. data/lib/sidekiq/systemd.rb +26 -0
  55. data/lib/sidekiq/testing/inline.rb +6 -5
  56. data/lib/sidekiq/testing.rb +91 -90
  57. data/lib/sidekiq/transaction_aware_client.rb +51 -0
  58. data/lib/sidekiq/version.rb +7 -1
  59. data/lib/sidekiq/web/action.rb +125 -60
  60. data/lib/sidekiq/web/application.rb +363 -259
  61. data/lib/sidekiq/web/config.rb +120 -0
  62. data/lib/sidekiq/web/csrf_protection.rb +183 -0
  63. data/lib/sidekiq/web/helpers.rb +241 -120
  64. data/lib/sidekiq/web/router.rb +62 -71
  65. data/lib/sidekiq/web.rb +69 -161
  66. data/lib/sidekiq/worker_compatibility_alias.rb +13 -0
  67. data/lib/sidekiq.rb +94 -182
  68. data/sidekiq.gemspec +26 -16
  69. data/web/assets/images/apple-touch-icon.png +0 -0
  70. data/web/assets/javascripts/application.js +150 -61
  71. data/web/assets/javascripts/base-charts.js +120 -0
  72. data/web/assets/javascripts/chart.min.js +13 -0
  73. data/web/assets/javascripts/chartjs-adapter-date-fns.min.js +7 -0
  74. data/web/assets/javascripts/chartjs-plugin-annotation.min.js +7 -0
  75. data/web/assets/javascripts/dashboard-charts.js +194 -0
  76. data/web/assets/javascripts/dashboard.js +41 -293
  77. data/web/assets/javascripts/metrics.js +280 -0
  78. data/web/assets/stylesheets/style.css +766 -0
  79. data/web/locales/ar.yml +72 -65
  80. data/web/locales/cs.yml +63 -62
  81. data/web/locales/da.yml +61 -53
  82. data/web/locales/de.yml +66 -53
  83. data/web/locales/el.yml +44 -24
  84. data/web/locales/en.yml +94 -66
  85. data/web/locales/es.yml +92 -54
  86. data/web/locales/fa.yml +66 -65
  87. data/web/locales/fr.yml +83 -62
  88. data/web/locales/gd.yml +99 -0
  89. data/web/locales/he.yml +66 -64
  90. data/web/locales/hi.yml +60 -59
  91. data/web/locales/it.yml +93 -54
  92. data/web/locales/ja.yml +75 -64
  93. data/web/locales/ko.yml +53 -52
  94. data/web/locales/lt.yml +84 -0
  95. data/web/locales/nb.yml +62 -61
  96. data/web/locales/nl.yml +53 -52
  97. data/web/locales/pl.yml +46 -45
  98. data/web/locales/{pt-br.yml → pt-BR.yml} +84 -56
  99. data/web/locales/pt.yml +52 -51
  100. data/web/locales/ru.yml +69 -63
  101. data/web/locales/sv.yml +54 -53
  102. data/web/locales/ta.yml +61 -60
  103. data/web/locales/tr.yml +101 -0
  104. data/web/locales/uk.yml +86 -61
  105. data/web/locales/ur.yml +65 -64
  106. data/web/locales/vi.yml +84 -0
  107. data/web/locales/zh-CN.yml +106 -0
  108. data/web/locales/{zh-tw.yml → zh-TW.yml} +43 -9
  109. data/web/views/_footer.erb +31 -19
  110. data/web/views/_job_info.erb +94 -75
  111. data/web/views/_metrics_period_select.erb +15 -0
  112. data/web/views/_nav.erb +14 -21
  113. data/web/views/_paging.erb +23 -19
  114. data/web/views/_poll_link.erb +3 -6
  115. data/web/views/_summary.erb +23 -23
  116. data/web/views/busy.erb +139 -87
  117. data/web/views/dashboard.erb +82 -53
  118. data/web/views/dead.erb +31 -27
  119. data/web/views/filtering.erb +6 -0
  120. data/web/views/layout.erb +15 -29
  121. data/web/views/metrics.erb +84 -0
  122. data/web/views/metrics_for_job.erb +58 -0
  123. data/web/views/morgue.erb +60 -70
  124. data/web/views/profiles.erb +43 -0
  125. data/web/views/queue.erb +50 -39
  126. data/web/views/queues.erb +45 -29
  127. data/web/views/retries.erb +65 -75
  128. data/web/views/retry.erb +32 -27
  129. data/web/views/scheduled.erb +58 -52
  130. data/web/views/scheduled_job_info.erb +1 -1
  131. metadata +96 -76
  132. data/.circleci/config.yml +0 -61
  133. data/.github/contributing.md +0 -32
  134. data/.github/issue_template.md +0 -11
  135. data/.gitignore +0 -15
  136. data/.travis.yml +0 -11
  137. data/3.0-Upgrade.md +0 -70
  138. data/4.0-Upgrade.md +0 -53
  139. data/5.0-Upgrade.md +0 -56
  140. data/COMM-LICENSE +0 -97
  141. data/Ent-Changes.md +0 -238
  142. data/Gemfile +0 -23
  143. data/LICENSE +0 -9
  144. data/Pro-2.0-Upgrade.md +0 -138
  145. data/Pro-3.0-Upgrade.md +0 -44
  146. data/Pro-4.0-Upgrade.md +0 -35
  147. data/Pro-Changes.md +0 -759
  148. data/Rakefile +0 -9
  149. data/bin/sidekiqctl +0 -20
  150. data/code_of_conduct.md +0 -50
  151. data/lib/generators/sidekiq/worker_generator.rb +0 -49
  152. data/lib/sidekiq/core_ext.rb +0 -1
  153. data/lib/sidekiq/ctl.rb +0 -221
  154. data/lib/sidekiq/delay.rb +0 -42
  155. data/lib/sidekiq/exception_handler.rb +0 -29
  156. data/lib/sidekiq/extensions/action_mailer.rb +0 -57
  157. data/lib/sidekiq/extensions/active_record.rb +0 -40
  158. data/lib/sidekiq/extensions/class_methods.rb +0 -40
  159. data/lib/sidekiq/extensions/generic_proxy.rb +0 -31
  160. data/lib/sidekiq/logging.rb +0 -122
  161. data/lib/sidekiq/middleware/server/active_record.rb +0 -23
  162. data/lib/sidekiq/util.rb +0 -66
  163. data/lib/sidekiq/worker.rb +0 -220
  164. data/web/assets/stylesheets/application-rtl.css +0 -246
  165. data/web/assets/stylesheets/application.css +0 -1144
  166. data/web/assets/stylesheets/bootstrap-rtl.min.css +0 -9
  167. data/web/assets/stylesheets/bootstrap.css +0 -5
  168. data/web/locales/zh-cn.yml +0 -68
  169. data/web/views/_status.erb +0 -4
@@ -1,54 +1,60 @@
1
- <header class="row">
2
- <div class="col-sm-5">
3
- <h3><%= t('ScheduledJobs') %></h3>
4
- </div>
5
- <% if @scheduled.size > 0 && @total_size > @count %>
6
- <div class="col-sm-4">
1
+ <section>
2
+ <header>
3
+ <h1><%= t('ScheduledJobs') %></h1>
4
+ <% if @scheduled.size > 0 && @total_size > @count %>
7
5
  <%= erb :_paging, locals: { url: "#{root_path}scheduled" } %>
8
- </div>
9
- <% end %>
10
- <%= filtering('scheduled') %>
11
- </header>
12
-
13
- <% if @scheduled.size > 0 %>
6
+ <% end %>
7
+ <%= filtering('scheduled') %>
8
+ </header>
14
9
 
15
- <form action="<%= root_path %>scheduled" method="post">
16
- <%= csrf_tag %>
17
- <div class="table_container">
18
- <table class="table table-striped table-bordered table-white">
19
- <thead>
20
- <tr>
21
- <th class="checkbox-column">
22
- <input type="checkbox" class="check_all" />
23
- </th>
24
- <th><%= t('When') %></th>
25
- <th><%= t('Queue') %></th>
26
- <th><%= t('Job') %></th>
27
- <th><%= t('Arguments') %></th>
28
- </tr>
29
- </thead>
30
- <% @scheduled.each do |entry| %>
31
- <tr>
32
- <td>
33
- <input type='checkbox' name='key[]' value='<%= job_params(entry.item, entry.score) %>' />
34
- </td>
35
- <td>
36
- <a href="<%= root_path %>scheduled/<%= job_params(entry.item, entry.score) %>"><%= relative_time(entry.at) %></a>
37
- </td>
38
- <td>
39
- <a href="<%= root_path %>queues/<%= entry.queue %>"><%= entry.queue %></a>
40
- </td>
41
- <td><%= entry.display_class %></td>
42
- <td>
43
- <div class="args"><%= display_args(entry.display_args) %></div>
44
- </td>
45
- </tr>
46
- <% end %>
47
- </table>
48
- </div>
49
- <input class="btn btn-danger pull-right flip" type="submit" name="delete" value="<%= t('Delete') %>" />
50
- <input class="btn btn-danger pull-right flip" type="submit" name="add_to_queue" value="<%= t('AddToQueue') %>" />
51
- </form>
52
- <% else %>
53
- <div class="alert alert-success"><%= t('NoScheduledFound') %></div>
54
- <% end %>
10
+ <% if @scheduled.size > 0 %>
11
+ <form action="<%= root_path %>scheduled" method="post">
12
+ <%= csrf_tag %>
13
+ <div class="table_container">
14
+ <table>
15
+ <thead>
16
+ <tr>
17
+ <th>
18
+ <label>
19
+ <input type="checkbox" class="check_all" />
20
+ </label>
21
+ </th>
22
+ <th><%= t('When') %></th>
23
+ <th><%= t('Queue') %></th>
24
+ <th><%= t('Job') %></th>
25
+ <th><%= t('Arguments') %></th>
26
+ </tr>
27
+ </thead>
28
+ <% @scheduled.each do |entry| %>
29
+ <tr>
30
+ <td>
31
+ <label>
32
+ <input type='checkbox' name='key[]' value='<%= job_params(entry.item, entry.score) %>' class='shift_clickable' />
33
+ </label>
34
+ </td>
35
+ <td>
36
+ <a href="<%= root_path %>scheduled/<%= job_params(entry.item, entry.score) %>"><%= relative_time(entry.at) %></a>
37
+ </td>
38
+ <td>
39
+ <a href="<%= root_path %>queues/<%= entry.queue %>"><%= entry.queue %></a>
40
+ </td>
41
+ <td>
42
+ <%= entry.display_class %>
43
+ <%= display_tags(entry, "scheduled") %>
44
+ </td>
45
+ <td>
46
+ <code>
47
+ <div class="args"><%= display_args(entry.display_args) %></div>
48
+ </code>
49
+ </td>
50
+ </tr>
51
+ <% end %>
52
+ </table>
53
+ </div>
54
+ <input class="btn btn-danger" type="submit" name="delete" value="<%= t('Delete') %>" />
55
+ <input class="btn btn-danger" type="submit" name="add_to_queue" value="<%= t('AddToQueue') %>" />
56
+ </form>
57
+ <% else %>
58
+ <div class="alert alert-success"><%= t('NoScheduledFound') %></div>
59
+ <% end %>
60
+ </section>
@@ -1,6 +1,6 @@
1
1
  <%= erb :_job_info, locals: { job: @job, type: :scheduled } %>
2
2
 
3
- <form class="form-horizontal" action="<%= root_path %>scheduled/<%= job_params(@job, @job.score) %>" method="post">
3
+ <form action="<%= root_path %>scheduled/<%= job_params(@job, @job.score) %>" method="post">
4
4
  <%= csrf_tag %>
5
5
  <a class="btn btn-default" href="<%= root_path %>scheduled"><%= t('GoBack') %></a>
6
6
  <input class="btn btn-primary" type="submit" name="add_to_queue" value="<%= t('AddToQueue') %>" />
metadata CHANGED
@@ -1,165 +1,173 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.7
4
+ version: 8.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Perham
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2019-04-22 00:00:00.000000000 Z
10
+ date: 2025-06-30 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
- name: redis
13
+ name: redis-client
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
16
  - - ">="
18
17
  - !ruby/object:Gem::Version
19
- version: 3.3.5
20
- - - "<"
21
- - !ruby/object:Gem::Version
22
- version: '5'
18
+ version: 0.23.2
23
19
  type: :runtime
24
20
  prerelease: false
25
21
  version_requirements: !ruby/object:Gem::Requirement
26
22
  requirements:
27
23
  - - ">="
28
24
  - !ruby/object:Gem::Version
29
- version: 3.3.5
30
- - - "<"
31
- - !ruby/object:Gem::Version
32
- version: '5'
25
+ version: 0.23.2
33
26
  - !ruby/object:Gem::Dependency
34
27
  name: connection_pool
35
28
  requirement: !ruby/object:Gem::Requirement
36
29
  requirements:
37
- - - "~>"
38
- - !ruby/object:Gem::Version
39
- version: '2.2'
40
30
  - - ">="
41
31
  - !ruby/object:Gem::Version
42
- version: 2.2.2
32
+ version: 2.5.0
43
33
  type: :runtime
44
34
  prerelease: false
45
35
  version_requirements: !ruby/object:Gem::Requirement
46
36
  requirements:
47
- - - "~>"
48
- - !ruby/object:Gem::Version
49
- version: '2.2'
50
37
  - - ">="
51
38
  - !ruby/object:Gem::Version
52
- version: 2.2.2
39
+ version: 2.5.0
53
40
  - !ruby/object:Gem::Dependency
54
41
  name: rack
55
42
  requirement: !ruby/object:Gem::Requirement
56
43
  requirements:
57
44
  - - ">="
58
45
  - !ruby/object:Gem::Version
59
- version: 1.5.0
46
+ version: 3.1.0
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 3.1.0
54
+ - !ruby/object:Gem::Dependency
55
+ name: json
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 2.9.0
60
61
  type: :runtime
61
62
  prerelease: false
62
63
  version_requirements: !ruby/object:Gem::Requirement
63
64
  requirements:
64
65
  - - ">="
65
66
  - !ruby/object:Gem::Version
66
- version: 1.5.0
67
+ version: 2.9.0
67
68
  - !ruby/object:Gem::Dependency
68
- name: rack-protection
69
+ name: logger
69
70
  requirement: !ruby/object:Gem::Requirement
70
71
  requirements:
71
72
  - - ">="
72
73
  - !ruby/object:Gem::Version
73
- version: 1.5.0
74
+ version: 1.6.2
74
75
  type: :runtime
75
76
  prerelease: false
76
77
  version_requirements: !ruby/object:Gem::Requirement
77
78
  requirements:
78
79
  - - ">="
79
80
  - !ruby/object:Gem::Version
80
- version: 1.5.0
81
+ version: 1.6.2
81
82
  description: Simple, efficient background processing for Ruby.
82
83
  email:
83
- - mperham@gmail.com
84
+ - info@contribsys.com
84
85
  executables:
85
86
  - sidekiq
86
- - sidekiqctl
87
+ - sidekiqmon
87
88
  extensions: []
88
89
  extra_rdoc_files: []
89
90
  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
91
  - 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
92
+ - LICENSE.txt
107
93
  - README.md
108
- - Rakefile
94
+ - bin/multi_queue_bench
109
95
  - bin/sidekiq
110
- - bin/sidekiqctl
111
96
  - 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
97
+ - bin/sidekiqmon
98
+ - bin/webload
99
+ - lib/active_job/queue_adapters/sidekiq_adapter.rb
100
+ - lib/generators/sidekiq/job_generator.rb
101
+ - lib/generators/sidekiq/templates/job.rb.erb
102
+ - lib/generators/sidekiq/templates/job_spec.rb.erb
103
+ - lib/generators/sidekiq/templates/job_test.rb.erb
117
104
  - lib/sidekiq.rb
118
105
  - lib/sidekiq/api.rb
106
+ - lib/sidekiq/capsule.rb
119
107
  - lib/sidekiq/cli.rb
120
108
  - 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
109
+ - lib/sidekiq/component.rb
110
+ - lib/sidekiq/config.rb
111
+ - lib/sidekiq/deploy.rb
112
+ - lib/sidekiq/embedded.rb
129
113
  - lib/sidekiq/fetch.rb
114
+ - lib/sidekiq/iterable_job.rb
115
+ - lib/sidekiq/job.rb
116
+ - lib/sidekiq/job/interrupt_handler.rb
117
+ - lib/sidekiq/job/iterable.rb
118
+ - lib/sidekiq/job/iterable/active_record_enumerator.rb
119
+ - lib/sidekiq/job/iterable/csv_enumerator.rb
120
+ - lib/sidekiq/job/iterable/enumerators.rb
130
121
  - lib/sidekiq/job_logger.rb
131
122
  - lib/sidekiq/job_retry.rb
123
+ - lib/sidekiq/job_util.rb
132
124
  - lib/sidekiq/launcher.rb
133
- - lib/sidekiq/logging.rb
125
+ - lib/sidekiq/logger.rb
134
126
  - lib/sidekiq/manager.rb
127
+ - lib/sidekiq/metrics/query.rb
128
+ - lib/sidekiq/metrics/shared.rb
129
+ - lib/sidekiq/metrics/tracking.rb
135
130
  - lib/sidekiq/middleware/chain.rb
131
+ - lib/sidekiq/middleware/current_attributes.rb
136
132
  - lib/sidekiq/middleware/i18n.rb
137
- - lib/sidekiq/middleware/server/active_record.rb
133
+ - lib/sidekiq/middleware/modules.rb
134
+ - lib/sidekiq/monitor.rb
138
135
  - lib/sidekiq/paginator.rb
139
136
  - lib/sidekiq/processor.rb
137
+ - lib/sidekiq/profiler.rb
140
138
  - lib/sidekiq/rails.rb
139
+ - lib/sidekiq/redis_client_adapter.rb
141
140
  - lib/sidekiq/redis_connection.rb
141
+ - lib/sidekiq/ring_buffer.rb
142
142
  - lib/sidekiq/scheduled.rb
143
+ - lib/sidekiq/sd_notify.rb
144
+ - lib/sidekiq/systemd.rb
143
145
  - lib/sidekiq/testing.rb
144
146
  - lib/sidekiq/testing/inline.rb
145
- - lib/sidekiq/util.rb
147
+ - lib/sidekiq/transaction_aware_client.rb
146
148
  - lib/sidekiq/version.rb
147
149
  - lib/sidekiq/web.rb
148
150
  - lib/sidekiq/web/action.rb
149
151
  - lib/sidekiq/web/application.rb
152
+ - lib/sidekiq/web/config.rb
153
+ - lib/sidekiq/web/csrf_protection.rb
150
154
  - lib/sidekiq/web/helpers.rb
151
155
  - lib/sidekiq/web/router.rb
152
- - lib/sidekiq/worker.rb
156
+ - lib/sidekiq/worker_compatibility_alias.rb
153
157
  - sidekiq.gemspec
158
+ - web/assets/images/apple-touch-icon.png
154
159
  - web/assets/images/favicon.ico
155
160
  - web/assets/images/logo.png
156
161
  - web/assets/images/status.png
157
162
  - web/assets/javascripts/application.js
163
+ - web/assets/javascripts/base-charts.js
164
+ - web/assets/javascripts/chart.min.js
165
+ - web/assets/javascripts/chartjs-adapter-date-fns.min.js
166
+ - web/assets/javascripts/chartjs-plugin-annotation.min.js
167
+ - web/assets/javascripts/dashboard-charts.js
158
168
  - web/assets/javascripts/dashboard.js
159
- - web/assets/stylesheets/application-rtl.css
160
- - web/assets/stylesheets/application.css
161
- - web/assets/stylesheets/bootstrap-rtl.min.css
162
- - web/assets/stylesheets/bootstrap.css
169
+ - web/assets/javascripts/metrics.js
170
+ - web/assets/stylesheets/style.css
163
171
  - web/locales/ar.yml
164
172
  - web/locales/cs.yml
165
173
  - web/locales/da.yml
@@ -169,46 +177,59 @@ files:
169
177
  - web/locales/es.yml
170
178
  - web/locales/fa.yml
171
179
  - web/locales/fr.yml
180
+ - web/locales/gd.yml
172
181
  - web/locales/he.yml
173
182
  - web/locales/hi.yml
174
183
  - web/locales/it.yml
175
184
  - web/locales/ja.yml
176
185
  - web/locales/ko.yml
186
+ - web/locales/lt.yml
177
187
  - web/locales/nb.yml
178
188
  - web/locales/nl.yml
179
189
  - web/locales/pl.yml
180
- - web/locales/pt-br.yml
190
+ - web/locales/pt-BR.yml
181
191
  - web/locales/pt.yml
182
192
  - web/locales/ru.yml
183
193
  - web/locales/sv.yml
184
194
  - web/locales/ta.yml
195
+ - web/locales/tr.yml
185
196
  - web/locales/uk.yml
186
197
  - web/locales/ur.yml
187
- - web/locales/zh-cn.yml
188
- - web/locales/zh-tw.yml
198
+ - web/locales/vi.yml
199
+ - web/locales/zh-CN.yml
200
+ - web/locales/zh-TW.yml
189
201
  - web/views/_footer.erb
190
202
  - web/views/_job_info.erb
203
+ - web/views/_metrics_period_select.erb
191
204
  - web/views/_nav.erb
192
205
  - web/views/_paging.erb
193
206
  - web/views/_poll_link.erb
194
- - web/views/_status.erb
195
207
  - web/views/_summary.erb
196
208
  - web/views/busy.erb
197
209
  - web/views/dashboard.erb
198
210
  - web/views/dead.erb
211
+ - web/views/filtering.erb
199
212
  - web/views/layout.erb
213
+ - web/views/metrics.erb
214
+ - web/views/metrics_for_job.erb
200
215
  - web/views/morgue.erb
216
+ - web/views/profiles.erb
201
217
  - web/views/queue.erb
202
218
  - web/views/queues.erb
203
219
  - web/views/retries.erb
204
220
  - web/views/retry.erb
205
221
  - web/views/scheduled.erb
206
222
  - web/views/scheduled_job_info.erb
207
- homepage: http://sidekiq.org
223
+ homepage: https://sidekiq.org
208
224
  licenses:
209
225
  - LGPL-3.0
210
- metadata: {}
211
- post_install_message:
226
+ metadata:
227
+ homepage_uri: https://sidekiq.org
228
+ bug_tracker_uri: https://github.com/sidekiq/sidekiq/issues
229
+ documentation_uri: https://github.com/sidekiq/sidekiq/wiki
230
+ changelog_uri: https://github.com/sidekiq/sidekiq/blob/main/Changes.md
231
+ source_code_uri: https://github.com/sidekiq/sidekiq
232
+ rubygems_mfa_required: 'true'
212
233
  rdoc_options: []
213
234
  require_paths:
214
235
  - lib
@@ -216,15 +237,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
216
237
  requirements:
217
238
  - - ">="
218
239
  - !ruby/object:Gem::Version
219
- version: 2.2.2
240
+ version: 3.2.0
220
241
  required_rubygems_version: !ruby/object:Gem::Requirement
221
242
  requirements:
222
243
  - - ">="
223
244
  - !ruby/object:Gem::Version
224
245
  version: '0'
225
246
  requirements: []
226
- rubygems_version: 3.0.1
227
- signing_key:
247
+ rubygems_version: 3.6.2
228
248
  specification_version: 4
229
249
  summary: Simple, efficient background processing for Ruby
230
250
  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
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
data/3.0-Upgrade.md DELETED
@@ -1,70 +0,0 @@
1
- # Upgrading to Sidekiq 3.0
2
-
3
- Sidekiq 3.0 brings several new features but also removes old APIs and
4
- changes a few data elements in Redis. To upgrade cleanly:
5
-
6
- * Upgrade to the latest Sidekiq 2.x and run it for a few weeks.
7
- `gem 'sidekiq', '< 3'`
8
- This is only needed if you have retries pending.
9
- * 3rd party gems which use **client-side middleware** will need to update
10
- due to an API change. The Redis connection for a particular job is
11
- passed thru the middleware to handle sharding where jobs can
12
- be pushed to different redis server instances.
13
-
14
- `def call(worker_class, msg, queue, redis_pool)`
15
-
16
- Client-side middleware should use `redis_pool.with { |conn| ... }` to
17
- perform Redis operations and **not** `Sidekiq.redis`.
18
- * If you used the capistrano integration, you'll need to pull in the
19
- new [capistrano-sidekiq](https://github.com/seuros/capistrano-sidekiq)
20
- gem and use it in your deploy.rb.
21
- * API changes:
22
- - `Sidekiq::Client.registered_workers` replaced by `Sidekiq::Workers.new`
23
- - `Sidekiq::Client.registered_queues` replaced by `Sidekiq::Queue.all`
24
- - `Sidekiq::Worker#retries_exhausted` replaced by `Sidekiq::Worker.sidekiq_retries_exhausted`
25
- - `Sidekiq::Workers#each` has changed significantly with a reworking
26
- of Sidekiq's internal process/thread data model.
27
- * `sidekiq/api` is no longer automatically required. If your code uses
28
- the API, you will need to require it.
29
- * Redis-to-Go is no longer transparently activated on Heroku so as to not play
30
- favorites with any particular Redis service. You need to set a config option
31
- for your app:
32
- `heroku config:set REDIS_PROVIDER=REDISTOGO_URL`. You may also use
33
- the generic `REDIS_URL`. See
34
- [Advanced Options: Setting the Location of your Redis server][1]
35
- for details.
36
- * Anyone using Airbrake, Honeybadger, Exceptional or ExceptionNotifier
37
- will need to update their error gem version to the latest to pull in
38
- Sidekiq support. Sidekiq will not provide explicit support for these
39
- services so as to not play favorites with any particular error service.
40
- * MRI 1.9 is no longer officially supported. Sidekiq's official
41
- support policy is to support the current and previous major releases
42
- of MRI and Rails. As of February 2014, that's MRI 2.1, MRI 2.0, JRuby 1.7, Rails 4.0
43
- and Rails 3.2. I will consider PRs to fix issues found by users for
44
- other platforms/versions.
45
-
46
- ## Error Service Providers
47
-
48
- If you previously provided a middleware to capture job errors, you
49
- should instead provide a global error handler with Sidekiq 3.0. This
50
- ensures **any** error within Sidekiq will be logged appropriately, not
51
- just during job execution.
52
-
53
- ```ruby
54
- if Sidekiq::VERSION < '3'
55
- # old behavior
56
- Sidekiq.configure_server do |config|
57
- config.server_middleware do |chain|
58
- chain.add MyErrorService::Middleware
59
- end
60
- end
61
- else
62
- Sidekiq.configure_server do |config|
63
- config.error_handlers << proc {|ex,context| MyErrorService.notify(ex, context) }
64
- end
65
- end
66
- ```
67
-
68
- Your error handler must respond to `call(exception, context_hash)`.
69
-
70
- [1]: https://github.com/mperham/sidekiq/wiki/Advanced-Options#via-env-variable