sidekiq 7.3.7 → 8.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. checksums.yaml +4 -4
  2. data/Changes.md +30 -0
  3. data/README.md +16 -13
  4. data/bin/sidekiqload +10 -10
  5. data/bin/webload +69 -0
  6. data/lib/active_job/queue_adapters/sidekiq_adapter.rb +5 -18
  7. data/lib/sidekiq/api.rb +108 -36
  8. data/lib/sidekiq/capsule.rb +1 -1
  9. data/lib/sidekiq/cli.rb +15 -19
  10. data/lib/sidekiq/client.rb +13 -16
  11. data/lib/sidekiq/component.rb +30 -2
  12. data/lib/sidekiq/config.rb +18 -15
  13. data/lib/sidekiq/embedded.rb +1 -0
  14. data/lib/sidekiq/job/iterable.rb +3 -5
  15. data/lib/sidekiq/job_retry.rb +2 -2
  16. data/lib/sidekiq/job_util.rb +5 -1
  17. data/lib/sidekiq/launcher.rb +1 -1
  18. data/lib/sidekiq/logger.rb +6 -10
  19. data/lib/sidekiq/manager.rb +0 -1
  20. data/lib/sidekiq/metrics/query.rb +1 -3
  21. data/lib/sidekiq/middleware/current_attributes.rb +5 -17
  22. data/lib/sidekiq/paginator.rb +14 -1
  23. data/lib/sidekiq/processor.rb +21 -14
  24. data/lib/sidekiq/profiler.rb +59 -0
  25. data/lib/sidekiq/rails.rb +12 -2
  26. data/lib/sidekiq/redis_client_adapter.rb +0 -1
  27. data/lib/sidekiq/testing.rb +2 -2
  28. data/lib/sidekiq/version.rb +2 -2
  29. data/lib/sidekiq/web/action.rb +101 -85
  30. data/lib/sidekiq/web/application.rb +339 -333
  31. data/lib/sidekiq/web/config.rb +116 -0
  32. data/lib/sidekiq/web/helpers.rb +45 -20
  33. data/lib/sidekiq/web/router.rb +60 -76
  34. data/lib/sidekiq/web.rb +51 -156
  35. data/sidekiq.gemspec +6 -4
  36. data/web/assets/javascripts/application.js +6 -13
  37. data/web/assets/javascripts/base-charts.js +30 -18
  38. data/web/assets/javascripts/dashboard-charts.js +2 -0
  39. data/web/assets/javascripts/dashboard.js +6 -0
  40. data/web/assets/javascripts/metrics.js +1 -1
  41. data/web/assets/stylesheets/style.css +750 -0
  42. data/web/locales/ar.yml +1 -0
  43. data/web/locales/cs.yml +1 -0
  44. data/web/locales/da.yml +1 -0
  45. data/web/locales/de.yml +1 -0
  46. data/web/locales/el.yml +1 -0
  47. data/web/locales/en.yml +9 -0
  48. data/web/locales/es.yml +24 -2
  49. data/web/locales/fa.yml +1 -0
  50. data/web/locales/fr.yml +1 -0
  51. data/web/locales/gd.yml +1 -0
  52. data/web/locales/he.yml +1 -0
  53. data/web/locales/hi.yml +1 -0
  54. data/web/locales/it.yml +1 -0
  55. data/web/locales/ja.yml +1 -0
  56. data/web/locales/ko.yml +1 -0
  57. data/web/locales/lt.yml +1 -0
  58. data/web/locales/nb.yml +1 -0
  59. data/web/locales/nl.yml +1 -0
  60. data/web/locales/pl.yml +1 -0
  61. data/web/locales/{pt-br.yml → pt-BR.yml} +2 -1
  62. data/web/locales/pt.yml +1 -0
  63. data/web/locales/ru.yml +1 -0
  64. data/web/locales/sv.yml +1 -0
  65. data/web/locales/ta.yml +1 -0
  66. data/web/locales/tr.yml +1 -0
  67. data/web/locales/uk.yml +1 -0
  68. data/web/locales/ur.yml +1 -0
  69. data/web/locales/vi.yml +1 -0
  70. data/web/locales/{zh-cn.yml → zh-CN.yml} +85 -73
  71. data/web/locales/{zh-tw.yml → zh-TW.yml} +2 -1
  72. data/web/views/_footer.erb +31 -34
  73. data/web/views/_job_info.erb +91 -89
  74. data/web/views/_metrics_period_select.erb +1 -1
  75. data/web/views/_nav.erb +14 -21
  76. data/web/views/_paging.erb +23 -21
  77. data/web/views/_poll_link.erb +2 -2
  78. data/web/views/_summary.erb +16 -16
  79. data/web/views/busy.erb +124 -122
  80. data/web/views/dashboard.erb +62 -64
  81. data/web/views/dead.erb +31 -27
  82. data/web/views/filtering.erb +3 -3
  83. data/web/views/layout.erb +5 -21
  84. data/web/views/metrics.erb +83 -80
  85. data/web/views/metrics_for_job.erb +39 -42
  86. data/web/views/morgue.erb +61 -70
  87. data/web/views/profiles.erb +43 -0
  88. data/web/views/queue.erb +54 -52
  89. data/web/views/queues.erb +43 -41
  90. data/web/views/retries.erb +66 -75
  91. data/web/views/retry.erb +32 -27
  92. data/web/views/scheduled.erb +58 -54
  93. data/web/views/scheduled_job_info.erb +1 -1
  94. metadata +46 -22
  95. data/web/assets/stylesheets/application-dark.css +0 -147
  96. data/web/assets/stylesheets/application-rtl.css +0 -163
  97. data/web/assets/stylesheets/application.css +0 -759
  98. data/web/assets/stylesheets/bootstrap-rtl.min.css +0 -9
  99. data/web/assets/stylesheets/bootstrap.css +0 -5
  100. data/web/views/_status.erb +0 -4
data/web/views/queues.erb CHANGED
@@ -1,44 +1,46 @@
1
- <div class="header-container">
2
- <h1><%= t('Queues') %></h1>
3
- </div>
1
+ <section>
2
+ <header>
3
+ <h1><%= t('Queues') %></h1>
4
+ </header>
4
5
 
5
- <div class="table_container">
6
- <table class="queues table table-hover table-bordered table-striped">
7
- <thead>
8
- <th><%= t('Queue') %></th>
9
- <th><%= t('Size') %></th>
10
- <th><%= t('Latency') %></th>
11
- <th><%= t('Actions') %></th>
12
- </thead>
13
- <% @queues.each do |queue| %>
14
- <tr>
15
- <td>
16
- <a href="<%= root_path %>queues/<%= CGI.escape(queue.name) %>"><%= h queue.name %></a>
17
- <% if queue.paused? %>
18
- <span class="label label-danger"><%= t('Paused') %></span>
19
- <% end %>
20
- </td>
21
- <td class="num"><%= number_with_delimiter(queue.size) %> </td>
22
- <td class="num">
23
- <% queue_latency = queue.latency %>
24
- <%= (queue_latency < 60) ? '' : " (#{relative_time(Time.at(Time.now.to_f - queue_latency))})" %>
25
- <%= number_with_delimiter(queue_latency, precision: 2) %>
26
- </td>
27
- <td class="delete-confirm">
28
- <form action="<%=root_path %>queues/<%= CGI.escape(queue.name) %>" method="post">
29
- <%= csrf_tag %>
30
- <input class="btn btn-danger" type="submit" name="delete" title="This will delete all jobs within the queue, it will reappear if you push more jobs to it in the future." value="<%= t('Delete') %>" data-confirm="<%= t('AreYouSureDeleteQueue', :queue => h(queue.name)) %>" />
6
+ <div class="table_container">
7
+ <table>
8
+ <thead>
9
+ <th><%= t('Queue') %></th>
10
+ <th><%= t('Size') %></th>
11
+ <th><%= t('Latency') %></th>
12
+ <th><%= t('Actions') %></th>
13
+ </thead>
14
+ <% @queues.each do |queue| %>
15
+ <tr>
16
+ <td>
17
+ <a href="<%= root_path %>queues/<%= CGI.escape(queue.name) %>"><%= h queue.name %></a>
18
+ <% if queue.paused? %>
19
+ <span class="label label-danger"><%= t('Paused') %></span>
20
+ <% end %>
21
+ </td>
22
+ <td class="num"><%= number_with_delimiter(queue.size) %> </td>
23
+ <td class="num">
24
+ <% queue_latency = queue.latency %>
25
+ <%= (queue_latency < 60) ? '' : " (#{relative_time(Time.at(Time.now.to_f - queue_latency))})" %>
26
+ <%= number_with_delimiter(queue_latency, precision: 2) %>
27
+ </td>
28
+ <td class="delete-confirm">
29
+ <form action="<%=root_path %>queues/<%= CGI.escape(queue.name) %>" method="post">
30
+ <%= csrf_tag %>
31
+ <input class="btn btn-danger" type="submit" name="delete" title="This will delete all jobs within the queue, it will reappear if you push more jobs to it in the future." value="<%= t('Delete') %>" data-confirm="<%= t('AreYouSureDeleteQueue', :queue => h(queue.name)) %>" />
31
32
 
32
- <% if Sidekiq.pro? %>
33
- <% if queue.paused? %>
34
- <input class="btn btn-danger" type="submit" name="unpause" value="<%= t('Unpause') %>" />
35
- <% else %>
36
- <input class="btn btn-danger" type="submit" name="pause" value="<%= t('Pause') %>" />
33
+ <% if Sidekiq.pro? %>
34
+ <% if queue.paused? %>
35
+ <input class="btn btn-danger" type="submit" name="unpause" value="<%= t('Unpause') %>" />
36
+ <% else %>
37
+ <input class="btn btn-danger" type="submit" name="pause" value="<%= t('Pause') %>" />
38
+ <% end %>
37
39
  <% end %>
38
- <% end %>
39
- </form>
40
- </td>
41
- </tr>
42
- <% end %>
43
- </table>
44
- </div>
40
+ </form>
41
+ </td>
42
+ </tr>
43
+ <% end %>
44
+ </table>
45
+ </div>
46
+ </section>
@@ -1,79 +1,70 @@
1
- <div class="header-container">
2
- <h1><%= t('Retries') %></h1>
3
- <% if @retries.size > 0 && @total_size > @count %>
4
- <%= erb :_paging, locals: { url: "#{root_path}retries" } %>
5
- <% end %>
6
- <%= filtering('retries') %>
7
- </div>
8
-
9
- <% if @retries.size > 0 %>
10
- <form action="<%= root_path %>retries" method="post">
11
- <%= csrf_tag %>
12
- <div class="table_container">
13
- <table class="table table-striped table-bordered table-hover">
14
- <thead>
15
- <tr>
16
- <th class="table-checkbox checkbox-column">
17
- <label>
18
- <input type="checkbox" class="check_all" />
19
- </label>
20
- </th>
21
- <th><%= t('NextRetry') %></th>
22
- <th><%= t('RetryCount') %></th>
23
- <th><%= t('Queue') %></th>
24
- <th><%= t('Job') %></th>
25
- <th><%= t('Arguments') %></th>
26
- <th><%= t('Error') %></th>
27
- </tr>
28
- </thead>
29
- <% @retries.each do |entry| %>
30
- <tr>
31
- <td class="table-checkbox">
32
- <label>
33
- <input type='checkbox' name='key[]' value='<%= job_params(entry.item, entry.score) %>' class='shift_clickable' />
34
- </label>
35
- </td>
36
- <td>
37
- <a href="<%= root_path %>retries/<%= job_params(entry.item, entry.score) %>"><%= relative_time(entry.at) %></a>
38
- </td>
39
- <td><%= entry['retry_count'] %></td>
40
- <td>
41
- <a href="<%= root_path %>queues/<%= entry.queue %>"><%= entry.queue %></a>
42
- </td>
43
- <td>
44
- <%= entry.display_class %>
45
- <%= display_tags(entry, "retries") %>
46
- </td>
47
- <td>
48
- <div class="args"><%= display_args(entry.display_args) %></div>
49
- </td>
50
- <td>
51
- <div><%= h truncate("#{entry['error_class']}: #{entry['error_message']}", 200) %></div>
52
- </td>
53
- </tr>
54
- <% end %>
55
- </table>
56
- </div>
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') %>" />
60
- </form>
1
+ <section>
2
+ <header>
3
+ <h1><%= t('Retries') %></h1>
4
+ <% if @retries.size > 0 && @total_size > @count %>
5
+ <%= erb :_paging, locals: { url: "#{root_path}retries" } %>
6
+ <% end %>
7
+ <%= filtering('retries') %>
8
+ </header>
61
9
 
62
- <% unfiltered? do %>
63
- <form action="<%= root_path %>retries/all/delete" method="post">
64
- <%= csrf_tag %>
65
- <input class="btn btn-danger pull-right flip" type="submit" name="delete" value="<%= t('DeleteAll') %>" data-confirm="<%= t('AreYouSure') %>" />
66
- </form>
67
- <form action="<%= root_path %>retries/all/retry" method="post">
10
+ <% if @retries.size > 0 %>
11
+ <form action="<%= root_path %>retries" method="post">
68
12
  <%= csrf_tag %>
69
- <input class="btn btn-danger pull-right flip" type="submit" name="retry" value="<%= t('RetryAll') %>" data-confirm="<%= t('AreYouSure') %>" />
70
- </form>
71
- <form action="<%= root_path %>retries/all/kill" method="post">
72
- <%= csrf_tag %>
73
- <input class="btn btn-danger pull-right flip" type="submit" name="kill" value="<%= t('KillAll') %>" data-confirm="<%= t('AreYouSure') %>" />
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('NextRetry') %></th>
23
+ <th><%= t('RetryCount') %></th>
24
+ <th><%= t('Queue') %></th>
25
+ <th><%= t('Job') %></th>
26
+ <th><%= t('Arguments') %></th>
27
+ <th><%= t('Error') %></th>
28
+ </tr>
29
+ </thead>
30
+ <% @retries.each do |entry| %>
31
+ <tr>
32
+ <td>
33
+ <label>
34
+ <input type='checkbox' name='key[]' value='<%= job_params(entry.item, entry.score) %>' class='shift_clickable' />
35
+ </label>
36
+ </td>
37
+ <td>
38
+ <a href="<%= root_path %>retries/<%= job_params(entry.item, entry.score) %>"><%= relative_time(entry.at) %></a>
39
+ </td>
40
+ <td><%= entry['retry_count'] %></td>
41
+ <td>
42
+ <a href="<%= root_path %>queues/<%= entry.queue %>"><%= entry.queue %></a>
43
+ </td>
44
+ <td>
45
+ <%= entry.display_class %>
46
+ <%= display_tags(entry, "retries") %>
47
+ </td>
48
+ <td>
49
+ <code>
50
+ <div class="args"><%= display_args(entry.display_args) %></div>
51
+ </code>
52
+ </td>
53
+ <td>
54
+ <div><a href="<%= root_path %>retries/<%= job_params(entry.item, entry.score) %>"><%= h truncate("#{entry['error_class']}: #{entry['error_message']}", 200) %></a></div>
55
+ </td>
56
+ </tr>
57
+ <% end %>
58
+ </table>
59
+ </div>
60
+ <div class="buttons-row">
61
+ <input class="btn btn-primary" type="submit" name="retry" value="<%= t('RetryNow') %>" />
62
+ <input class="btn btn-danger" type="submit" name="delete" value="<%= t('Delete') %>" />
63
+ <input class="btn btn-danger" type="submit" name="kill" value="<%= t('Kill') %>" />
64
+ </div>
74
65
  </form>
66
+
67
+ <% else %>
68
+ <div class="alert alert-success"><%= t('NoRetriesFound') %></div>
75
69
  <% end %>
76
-
77
- <% else %>
78
- <div class="alert alert-success"><%= t('NoRetriesFound') %></div>
79
- <% end %>
70
+ </section>
data/web/views/retry.erb CHANGED
@@ -1,34 +1,39 @@
1
1
  <%= erb :_job_info, locals: { job: @retry, type: :retry } %>
2
2
 
3
- <h3><%= t('Error') %></h3>
4
- <div class="table_container">
5
- <table class="error table table-bordered table-striped table-hover">
6
- <tbody>
7
- <tr>
8
- <th><%= t('ErrorClass') %></th>
9
- <td>
10
- <code><%= h @retry['error_class'] %></code>
11
- </td>
12
- </tr>
13
- <tr>
14
- <th><%= t('ErrorMessage') %></th>
15
- <td><%= h(@retry['error_message']) %></td>
16
- </tr>
17
- <% if @retry.error_backtrace %>
3
+ <section>
4
+ <header>
5
+ <h2><%= t('Error') %></h2>
6
+ </header>
7
+
8
+ <div class="table_container">
9
+ <table>
10
+ <tbody>
18
11
  <tr>
19
- <th><%= t('ErrorBacktrace') %></th>
12
+ <th><%= t('ErrorClass') %></th>
20
13
  <td>
21
- <code><%= @retry.error_backtrace.join("<br/>") %></code>
14
+ <code><%= h @retry['error_class'] %></code>
22
15
  </td>
23
16
  </tr>
24
- <% end %>
25
- </tbody>
26
- </table>
27
- </div>
17
+ <tr>
18
+ <th><%= t('ErrorMessage') %></th>
19
+ <td><%= h(@retry['error_message']) %></td>
20
+ </tr>
21
+ <% if @retry.error_backtrace %>
22
+ <tr>
23
+ <th><%= t('ErrorBacktrace') %></th>
24
+ <td>
25
+ <code><%= @retry.error_backtrace.join("<br/>") %></code>
26
+ </td>
27
+ </tr>
28
+ <% end %>
29
+ </tbody>
30
+ </table>
31
+ </div>
28
32
 
29
- <form class="form-horizontal" action="<%= root_path %>retries/<%= job_params(@retry, @retry.score) %>" method="post">
30
- <%= csrf_tag %>
31
- <a class="btn btn-default" href="<%= root_path %>retries"><%= t('GoBack') %></a>
32
- <input class="btn btn-primary" type="submit" name="retry" value="<%= t('RetryNow') %>" />
33
- <input class="btn btn-danger" type="submit" name="delete" value="<%= t('Delete') %>" />
34
- </form>
33
+ <form action="<%= root_path %>retries/<%= job_params(@retry, @retry.score) %>" method="post">
34
+ <%= csrf_tag %>
35
+ <a class="btn btn-default" href="<%= root_path %>retries"><%= t('GoBack') %></a>
36
+ <input class="btn btn-primary" type="submit" name="retry" value="<%= t('RetryNow') %>" />
37
+ <input class="btn btn-danger" type="submit" name="delete" value="<%= t('Delete') %>" />
38
+ </form>
39
+ </section>
@@ -1,56 +1,60 @@
1
- <div class="header-container">
2
- <h1><%= t('ScheduledJobs') %></h1>
3
- <% if @scheduled.size > 0 && @total_size > @count %>
4
- <%= erb :_paging, locals: { url: "#{root_path}scheduled" } %>
1
+ <section>
2
+ <header>
3
+ <h1><%= t('ScheduledJobs') %></h1>
4
+ <% if @scheduled.size > 0 && @total_size > @count %>
5
+ <%= erb :_paging, locals: { url: "#{root_path}scheduled" } %>
6
+ <% end %>
7
+ <%= filtering('scheduled') %>
8
+ </header>
9
+
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>
5
59
  <% end %>
6
- <%= filtering('scheduled') %>
7
60
  </div>
8
-
9
- <% if @scheduled.size > 0 %>
10
- <form action="<%= root_path %>scheduled" method="post">
11
- <%= csrf_tag %>
12
- <div class="table_container">
13
- <table class="table table-striped table-bordered table-hover">
14
- <thead>
15
- <tr>
16
- <th class="table-checkbox checkbox-column">
17
- <label>
18
- <input type="checkbox" class="check_all" />
19
- </label>
20
- </th>
21
- <th><%= t('When') %></th>
22
- <th><%= t('Queue') %></th>
23
- <th><%= t('Job') %></th>
24
- <th><%= t('Arguments') %></th>
25
- </tr>
26
- </thead>
27
- <% @scheduled.each do |entry| %>
28
- <tr>
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>
33
- </td>
34
- <td>
35
- <a href="<%= root_path %>scheduled/<%= job_params(entry.item, entry.score) %>"><%= relative_time(entry.at) %></a>
36
- </td>
37
- <td>
38
- <a href="<%= root_path %>queues/<%= entry.queue %>"><%= entry.queue %></a>
39
- </td>
40
- <td>
41
- <%= entry.display_class %>
42
- <%= display_tags(entry, "scheduled") %>
43
- </td>
44
- <td>
45
- <div class="args"><%= display_args(entry.display_args) %></div>
46
- </td>
47
- </tr>
48
- <% end %>
49
- </table>
50
- </div>
51
- <input class="btn btn-danger pull-right flip" type="submit" name="delete" value="<%= t('Delete') %>" />
52
- <input class="btn btn-danger pull-right flip" type="submit" name="add_to_queue" value="<%= t('AddToQueue') %>" />
53
- </form>
54
- <% else %>
55
- <div class="alert alert-success"><%= t('NoScheduledFound') %></div>
56
- <% end %>
@@ -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,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.3.7
4
+ version: 8.0.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Perham
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2024-12-17 00:00:00.000000000 Z
10
+ date: 2025-02-05 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: redis-client
@@ -16,42 +15,56 @@ dependencies:
16
15
  requirements:
17
16
  - - ">="
18
17
  - !ruby/object:Gem::Version
19
- version: 0.22.2
18
+ version: 0.23.2
20
19
  type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
23
  - - ">="
25
24
  - !ruby/object:Gem::Version
26
- version: 0.22.2
25
+ version: 0.23.2
27
26
  - !ruby/object:Gem::Dependency
28
27
  name: connection_pool
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
30
  - - ">="
32
31
  - !ruby/object:Gem::Version
33
- version: 2.3.0
32
+ version: 2.5.0
34
33
  type: :runtime
35
34
  prerelease: false
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
38
37
  - - ">="
39
38
  - !ruby/object:Gem::Version
40
- version: 2.3.0
39
+ version: 2.5.0
41
40
  - !ruby/object:Gem::Dependency
42
41
  name: rack
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
44
  - - ">="
46
45
  - !ruby/object:Gem::Version
47
- version: 2.2.4
46
+ version: 3.1.0
48
47
  type: :runtime
49
48
  prerelease: false
50
49
  version_requirements: !ruby/object:Gem::Requirement
51
50
  requirements:
52
51
  - - ">="
53
52
  - !ruby/object:Gem::Version
54
- version: 2.2.4
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
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: 2.9.0
55
68
  - !ruby/object:Gem::Dependency
56
69
  name: logger
57
70
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +79,20 @@ dependencies:
66
79
  - - ">="
67
80
  - !ruby/object:Gem::Version
68
81
  version: '0'
82
+ - !ruby/object:Gem::Dependency
83
+ name: base64
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
69
96
  description: Simple, efficient background processing for Ruby.
70
97
  email:
71
98
  - info@contribsys.com
@@ -82,6 +109,7 @@ files:
82
109
  - bin/sidekiq
83
110
  - bin/sidekiqload
84
111
  - bin/sidekiqmon
112
+ - bin/webload
85
113
  - lib/active_job/queue_adapters/sidekiq_adapter.rb
86
114
  - lib/generators/sidekiq/job_generator.rb
87
115
  - lib/generators/sidekiq/templates/job.rb.erb
@@ -120,6 +148,7 @@ files:
120
148
  - lib/sidekiq/monitor.rb
121
149
  - lib/sidekiq/paginator.rb
122
150
  - lib/sidekiq/processor.rb
151
+ - lib/sidekiq/profiler.rb
123
152
  - lib/sidekiq/rails.rb
124
153
  - lib/sidekiq/redis_client_adapter.rb
125
154
  - lib/sidekiq/redis_connection.rb
@@ -134,6 +163,7 @@ files:
134
163
  - lib/sidekiq/web.rb
135
164
  - lib/sidekiq/web/action.rb
136
165
  - lib/sidekiq/web/application.rb
166
+ - lib/sidekiq/web/config.rb
137
167
  - lib/sidekiq/web/csrf_protection.rb
138
168
  - lib/sidekiq/web/helpers.rb
139
169
  - lib/sidekiq/web/router.rb
@@ -150,11 +180,7 @@ files:
150
180
  - web/assets/javascripts/dashboard-charts.js
151
181
  - web/assets/javascripts/dashboard.js
152
182
  - web/assets/javascripts/metrics.js
153
- - web/assets/stylesheets/application-dark.css
154
- - web/assets/stylesheets/application-rtl.css
155
- - web/assets/stylesheets/application.css
156
- - web/assets/stylesheets/bootstrap-rtl.min.css
157
- - web/assets/stylesheets/bootstrap.css
183
+ - web/assets/stylesheets/style.css
158
184
  - web/locales/ar.yml
159
185
  - web/locales/cs.yml
160
186
  - web/locales/da.yml
@@ -174,7 +200,7 @@ files:
174
200
  - web/locales/nb.yml
175
201
  - web/locales/nl.yml
176
202
  - web/locales/pl.yml
177
- - web/locales/pt-br.yml
203
+ - web/locales/pt-BR.yml
178
204
  - web/locales/pt.yml
179
205
  - web/locales/ru.yml
180
206
  - web/locales/sv.yml
@@ -183,15 +209,14 @@ files:
183
209
  - web/locales/uk.yml
184
210
  - web/locales/ur.yml
185
211
  - web/locales/vi.yml
186
- - web/locales/zh-cn.yml
187
- - web/locales/zh-tw.yml
212
+ - web/locales/zh-CN.yml
213
+ - web/locales/zh-TW.yml
188
214
  - web/views/_footer.erb
189
215
  - web/views/_job_info.erb
190
216
  - web/views/_metrics_period_select.erb
191
217
  - web/views/_nav.erb
192
218
  - web/views/_paging.erb
193
219
  - web/views/_poll_link.erb
194
- - web/views/_status.erb
195
220
  - web/views/_summary.erb
196
221
  - web/views/busy.erb
197
222
  - web/views/dashboard.erb
@@ -201,6 +226,7 @@ files:
201
226
  - web/views/metrics.erb
202
227
  - web/views/metrics_for_job.erb
203
228
  - web/views/morgue.erb
229
+ - web/views/profiles.erb
204
230
  - web/views/queue.erb
205
231
  - web/views/queues.erb
206
232
  - web/views/retries.erb
@@ -217,7 +243,6 @@ metadata:
217
243
  changelog_uri: https://github.com/sidekiq/sidekiq/blob/main/Changes.md
218
244
  source_code_uri: https://github.com/sidekiq/sidekiq
219
245
  rubygems_mfa_required: 'true'
220
- post_install_message:
221
246
  rdoc_options: []
222
247
  require_paths:
223
248
  - lib
@@ -225,15 +250,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
225
250
  requirements:
226
251
  - - ">="
227
252
  - !ruby/object:Gem::Version
228
- version: 2.7.0
253
+ version: 3.2.0
229
254
  required_rubygems_version: !ruby/object:Gem::Requirement
230
255
  requirements:
231
256
  - - ">="
232
257
  - !ruby/object:Gem::Version
233
258
  version: '0'
234
259
  requirements: []
235
- rubygems_version: 3.5.22
236
- signing_key:
260
+ rubygems_version: 3.6.2
237
261
  specification_version: 4
238
262
  summary: Simple, efficient background processing for Ruby
239
263
  test_files: []