sidekiq 7.0.1 → 7.0.8

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 (53) hide show
  1. checksums.yaml +4 -4
  2. data/Changes.md +69 -9
  3. data/README.md +29 -22
  4. data/bin/sidekiqload +186 -109
  5. data/bin/sidekiqmon +3 -0
  6. data/lib/sidekiq/api.rb +43 -4
  7. data/lib/sidekiq/capsule.rb +17 -0
  8. data/lib/sidekiq/cli.rb +3 -2
  9. data/lib/sidekiq/client.rb +1 -1
  10. data/lib/sidekiq/component.rb +2 -0
  11. data/lib/sidekiq/config.rb +2 -3
  12. data/lib/sidekiq/deploy.rb +3 -3
  13. data/lib/sidekiq/embedded.rb +1 -1
  14. data/lib/sidekiq/fetch.rb +3 -5
  15. data/lib/sidekiq/job.rb +2 -2
  16. data/lib/sidekiq/job_logger.rb +1 -1
  17. data/lib/sidekiq/job_retry.rb +5 -4
  18. data/lib/sidekiq/job_util.rb +48 -14
  19. data/lib/sidekiq/launcher.rb +13 -7
  20. data/lib/sidekiq/metrics/query.rb +1 -1
  21. data/lib/sidekiq/metrics/tracking.rb +2 -0
  22. data/lib/sidekiq/middleware/chain.rb +12 -9
  23. data/lib/sidekiq/middleware/current_attributes.rb +5 -7
  24. data/lib/sidekiq/monitor.rb +17 -4
  25. data/lib/sidekiq/paginator.rb +2 -2
  26. data/lib/sidekiq/processor.rb +4 -1
  27. data/lib/sidekiq/rails.rb +2 -1
  28. data/lib/sidekiq/redis_client_adapter.rb +3 -6
  29. data/lib/sidekiq/scheduled.rb +1 -1
  30. data/lib/sidekiq/version.rb +1 -1
  31. data/lib/sidekiq/web/application.rb +20 -5
  32. data/lib/sidekiq/web/helpers.rb +15 -7
  33. data/lib/sidekiq/web.rb +4 -0
  34. data/sidekiq.gemspec +11 -22
  35. data/web/assets/javascripts/application.js +18 -0
  36. data/web/assets/javascripts/metrics.js +30 -2
  37. data/web/assets/stylesheets/application-dark.css +4 -0
  38. data/web/assets/stylesheets/application.css +3 -3
  39. data/web/locales/da.yml +11 -4
  40. data/web/locales/ja.yml +3 -1
  41. data/web/views/_footer.erb +2 -2
  42. data/web/views/_job_info.erb +18 -2
  43. data/web/views/_metrics_period_select.erb +12 -0
  44. data/web/views/_paging.erb +2 -0
  45. data/web/views/busy.erb +37 -26
  46. data/web/views/metrics.erb +6 -4
  47. data/web/views/metrics_for_job.erb +9 -7
  48. data/web/views/morgue.erb +5 -9
  49. data/web/views/queue.erb +10 -14
  50. data/web/views/queues.erb +3 -1
  51. data/web/views/retries.erb +5 -9
  52. data/web/views/scheduled.erb +12 -13
  53. metadata +17 -26
@@ -15,14 +15,16 @@
15
15
 
16
16
  <% if job_result.totals["s"] > 0 %>
17
17
  <div class="header-container">
18
- <h1>
19
- <a href="<%= root_path %>metrics"><%= t(:metrics).to_s.titleize %></a> /
20
- <%= h @name %>
21
- </h1>
18
+ <div class="page-title-container">
19
+ <h1>
20
+ <a href="<%= root_path %>metrics?period=<%= @period %>"><%= t('Metrics') %></a> /
21
+ <%= h @name %>
22
+ </h1>
22
23
 
23
- <div>
24
- <a target="blank" href="https://github.com/mperham/sidekiq/wiki/Metrics"><span class="info-circle" title="Click to learn more about metrics">?</span></a>
24
+ <a target="blank" href="https://github.com/sidekiq/sidekiq/wiki/Metrics"><span class="info-circle" title="Click to learn more about metrics">?</span></a>
25
25
  </div>
26
+
27
+ <%= erb :_metrics_period_select, locals: { periods: @periods, period: @period, path: "#{root_path}metrics/#{@name}" } %>
26
28
  </div>
27
29
 
28
30
  <canvas id="hist-totals-chart"></canvas>
@@ -61,7 +63,7 @@
61
63
  <p><small>Data from <%= @query_result.starts_at %> to <%= @query_result.ends_at %></small></p>
62
64
  <% else %>
63
65
  <h1>
64
- <a href="<%= root_path %>/metrics"><%= t(:metrics).to_s.titleize %></a> /
66
+ <a href="<%= root_path %>/metrics"><%= t('Metrics') %></a> /
65
67
  <%= h @name %>
66
68
  </h1>
67
69
 
data/web/views/morgue.erb CHANGED
@@ -1,14 +1,10 @@
1
- <header class="row">
2
- <div class="col-sm-5">
3
- <h3><%= t('DeadJobs') %></h3>
4
- </div>
1
+ <div class="header-container">
2
+ <h1><%= t('DeadJobs') %></h1>
5
3
  <% if @dead.size > 0 && @total_size > @count %>
6
- <div class="col-sm-4">
7
- <%= erb :_paging, locals: { url: "#{root_path}morgue" } %>
8
- </div>
4
+ <%= erb :_paging, locals: { url: "#{root_path}morgue" } %>
9
5
  <% end %>
10
6
  <%= filtering('dead') %>
11
- </header>
7
+ </div>
12
8
 
13
9
  <% if @dead.size > 0 %>
14
10
  <form action="<%= root_path %>morgue" method="post">
@@ -33,7 +29,7 @@
33
29
  <tr>
34
30
  <td class="table-checkbox">
35
31
  <label>
36
- <input type='checkbox' name='key[]' value='<%= job_params(entry.item, entry.score) %>' />
32
+ <input type='checkbox' name='key[]' value='<%= job_params(entry.item, entry.score) %>' class='shift_clickable' />
37
33
  </label>
38
34
  </td>
39
35
  <td>
data/web/views/queue.erb CHANGED
@@ -1,17 +1,13 @@
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>
data/web/views/queues.erb CHANGED
@@ -1,4 +1,6 @@
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
6
  <table class="queues table table-hover table-bordered table-striped">
@@ -1,14 +1,10 @@
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">
@@ -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>
@@ -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
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>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.0.1
4
+ version: 7.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Perham
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-11-04 00:00:00.000000000 Z
11
+ date: 2023-04-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis-client
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.9.0
19
+ version: 0.11.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 0.9.0
26
+ version: 0.11.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: connection_pool
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -68,7 +68,7 @@ dependencies:
68
68
  version: '2'
69
69
  description: Simple, efficient background processing for Ruby.
70
70
  email:
71
- - mperham@gmail.com
71
+ - info@contribsys.com
72
72
  executables:
73
73
  - sidekiq
74
74
  - sidekiqmon
@@ -177,6 +177,7 @@ files:
177
177
  - web/locales/zh-tw.yml
178
178
  - web/views/_footer.erb
179
179
  - web/views/_job_info.erb
180
+ - web/views/_metrics_period_select.erb
180
181
  - web/views/_nav.erb
181
182
  - web/views/_paging.erb
182
183
  - web/views/_poll_link.erb
@@ -200,30 +201,19 @@ licenses:
200
201
  - LGPL-3.0
201
202
  metadata:
202
203
  homepage_uri: https://sidekiq.org
203
- bug_tracker_uri: https://github.com/mperham/sidekiq/issues
204
- documentation_uri: https://github.com/mperham/sidekiq/wiki
205
- changelog_uri: https://github.com/mperham/sidekiq/blob/main/Changes.md
206
- source_code_uri: https://github.com/mperham/sidekiq
207
- post_install_message: |2
208
-
209
- ####################################################
210
-
211
-
212
- █████████ █████ ██████████ ██████████ █████ ████ █████ ██████ ██████████ █████
213
- ███░░░░░███░░███ ░░███░░░░███ ░░███░░░░░█░░███ ███░ ░░███ ███░░░░███ ░███░░░░███ ███░░░███
214
- ░███ ░░░ ░███ ░███ ░░███ ░███ █ ░ ░███ ███ ░███ ███ ░░███ ░░░ ███ ███ ░░███
215
- ░░█████████ ░███ ░███ ░███ ░██████ ░███████ ░███ ░███ ░███ ███ ░███ ░███
216
- ░░░░░░░░███ ░███ ░███ ░███ ░███░░█ ░███░░███ ░███ ░███ ██░███ ███ ░███ ░███
217
- ███ ░███ ░███ ░███ ███ ░███ ░ █ ░███ ░░███ ░███ ░░███ ░░████ ███ ░░███ ███
218
- ░░█████████ █████ ██████████ ██████████ █████ ░░████ █████ ░░░██████░██ ███ ██ ░░░█████░
219
- ░░░░░░░░░ ░░░░░ ░░░░░░░░░░ ░░░░░░░░░░ ░░░░░ ░░░░ ░░░░░ ░░░░░░ ░░ ░░░ ░░ ░░░░░░
204
+ bug_tracker_uri: https://github.com/sidekiq/sidekiq/issues
205
+ documentation_uri: https://github.com/sidekiq/sidekiq/wiki
206
+ changelog_uri: https://github.com/sidekiq/sidekiq/blob/main/Changes.md
207
+ source_code_uri: https://github.com/sidekiq/sidekiq
208
+ rubygems_mfa_required: 'true'
209
+ post_install_message: |2+
220
210
 
211
+ Welcome to Sidekiq 7.0!
221
212
 
222
213
  1. Use `gem 'sidekiq', '<7'` in your Gemfile if you don't want this new version.
223
- 2. Read the release notes at https://github.com/mperham/sidekiq/blob/main/docs/7.0-Upgrade.md
224
- 3. Search for open/closed issues at https://github.com/mperham/sidekiq/issues/
214
+ 2. Read the release notes at https://github.com/sidekiq/sidekiq/blob/main/docs/7.0-Upgrade.md
215
+ 3. If you have problems, search for open/closed issues at https://github.com/sidekiq/sidekiq/issues/
225
216
 
226
- ####################################################
227
217
  rdoc_options: []
228
218
  require_paths:
229
219
  - lib
@@ -238,8 +228,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
238
228
  - !ruby/object:Gem::Version
239
229
  version: '0'
240
230
  requirements: []
241
- rubygems_version: 3.2.32
231
+ rubygems_version: 3.4.7
242
232
  signing_key:
243
233
  specification_version: 4
244
234
  summary: Simple, efficient background processing for Ruby
245
235
  test_files: []
236
+ ...