sidekiq 7.3.9 → 8.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. checksums.yaml +4 -4
  2. data/Changes.md +21 -4
  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 -5
  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 +2 -4
  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 +8 -1
  23. data/lib/sidekiq/processor.rb +21 -14
  24. data/lib/sidekiq/profiler.rb +59 -0
  25. data/lib/sidekiq/redis_client_adapter.rb +0 -1
  26. data/lib/sidekiq/testing.rb +2 -2
  27. data/lib/sidekiq/version.rb +2 -2
  28. data/lib/sidekiq/web/action.rb +101 -85
  29. data/lib/sidekiq/web/application.rb +339 -333
  30. data/lib/sidekiq/web/config.rb +116 -0
  31. data/lib/sidekiq/web/helpers.rb +40 -15
  32. data/lib/sidekiq/web/router.rb +60 -76
  33. data/lib/sidekiq/web.rb +51 -156
  34. data/sidekiq.gemspec +5 -4
  35. data/web/assets/javascripts/application.js +6 -13
  36. data/web/assets/javascripts/base-charts.js +30 -18
  37. data/web/assets/javascripts/metrics.js +1 -1
  38. data/web/assets/stylesheets/style.css +750 -0
  39. data/web/locales/ar.yml +1 -0
  40. data/web/locales/cs.yml +1 -0
  41. data/web/locales/da.yml +1 -0
  42. data/web/locales/de.yml +1 -0
  43. data/web/locales/el.yml +1 -0
  44. data/web/locales/en.yml +6 -0
  45. data/web/locales/es.yml +24 -2
  46. data/web/locales/fa.yml +1 -0
  47. data/web/locales/fr.yml +1 -0
  48. data/web/locales/gd.yml +1 -0
  49. data/web/locales/he.yml +1 -0
  50. data/web/locales/hi.yml +1 -0
  51. data/web/locales/it.yml +1 -0
  52. data/web/locales/ja.yml +1 -0
  53. data/web/locales/ko.yml +1 -0
  54. data/web/locales/lt.yml +1 -0
  55. data/web/locales/nb.yml +1 -0
  56. data/web/locales/nl.yml +1 -0
  57. data/web/locales/pl.yml +1 -0
  58. data/web/locales/{pt-br.yml → pt-BR.yml} +2 -1
  59. data/web/locales/pt.yml +1 -0
  60. data/web/locales/ru.yml +1 -0
  61. data/web/locales/sv.yml +1 -0
  62. data/web/locales/ta.yml +1 -0
  63. data/web/locales/tr.yml +1 -0
  64. data/web/locales/uk.yml +1 -0
  65. data/web/locales/ur.yml +1 -0
  66. data/web/locales/vi.yml +1 -0
  67. data/web/locales/{zh-cn.yml → zh-CN.yml} +85 -73
  68. data/web/locales/{zh-tw.yml → zh-TW.yml} +2 -1
  69. data/web/views/_footer.erb +31 -33
  70. data/web/views/_job_info.erb +91 -89
  71. data/web/views/_metrics_period_select.erb +1 -1
  72. data/web/views/_nav.erb +14 -21
  73. data/web/views/_paging.erb +23 -21
  74. data/web/views/_poll_link.erb +2 -2
  75. data/web/views/_summary.erb +16 -16
  76. data/web/views/busy.erb +124 -122
  77. data/web/views/dashboard.erb +61 -66
  78. data/web/views/dead.erb +31 -27
  79. data/web/views/filtering.erb +3 -3
  80. data/web/views/layout.erb +5 -21
  81. data/web/views/metrics.erb +83 -80
  82. data/web/views/metrics_for_job.erb +39 -42
  83. data/web/views/morgue.erb +61 -70
  84. data/web/views/profiles.erb +43 -0
  85. data/web/views/queue.erb +54 -52
  86. data/web/views/queues.erb +43 -41
  87. data/web/views/retries.erb +66 -75
  88. data/web/views/retry.erb +32 -27
  89. data/web/views/scheduled.erb +58 -54
  90. data/web/views/scheduled_job_info.erb +1 -1
  91. metadata +31 -18
  92. data/web/assets/stylesheets/application-dark.css +0 -147
  93. data/web/assets/stylesheets/application-rtl.css +0 -163
  94. data/web/assets/stylesheets/application.css +0 -759
  95. data/web/assets/stylesheets/bootstrap-rtl.min.css +0 -9
  96. data/web/assets/stylesheets/bootstrap.css +0 -5
  97. 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,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.3.9
4
+ version: 8.0.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Perham
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-02-14 00:00:00.000000000 Z
10
+ date: 2025-02-05 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: redis-client
@@ -15,42 +15,56 @@ dependencies:
15
15
  requirements:
16
16
  - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: 0.22.2
18
+ version: 0.23.2
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
- version: 0.22.2
25
+ version: 0.23.2
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: connection_pool
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 2.3.0
32
+ version: 2.5.0
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: 2.3.0
39
+ version: 2.5.0
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: rack
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: 2.2.4
46
+ version: 3.1.0
47
47
  type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - ">="
52
52
  - !ruby/object:Gem::Version
53
- 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
54
68
  - !ruby/object:Gem::Dependency
55
69
  name: logger
56
70
  requirement: !ruby/object:Gem::Requirement
@@ -95,6 +109,7 @@ files:
95
109
  - bin/sidekiq
96
110
  - bin/sidekiqload
97
111
  - bin/sidekiqmon
112
+ - bin/webload
98
113
  - lib/active_job/queue_adapters/sidekiq_adapter.rb
99
114
  - lib/generators/sidekiq/job_generator.rb
100
115
  - lib/generators/sidekiq/templates/job.rb.erb
@@ -133,6 +148,7 @@ files:
133
148
  - lib/sidekiq/monitor.rb
134
149
  - lib/sidekiq/paginator.rb
135
150
  - lib/sidekiq/processor.rb
151
+ - lib/sidekiq/profiler.rb
136
152
  - lib/sidekiq/rails.rb
137
153
  - lib/sidekiq/redis_client_adapter.rb
138
154
  - lib/sidekiq/redis_connection.rb
@@ -147,6 +163,7 @@ files:
147
163
  - lib/sidekiq/web.rb
148
164
  - lib/sidekiq/web/action.rb
149
165
  - lib/sidekiq/web/application.rb
166
+ - lib/sidekiq/web/config.rb
150
167
  - lib/sidekiq/web/csrf_protection.rb
151
168
  - lib/sidekiq/web/helpers.rb
152
169
  - lib/sidekiq/web/router.rb
@@ -163,11 +180,7 @@ files:
163
180
  - web/assets/javascripts/dashboard-charts.js
164
181
  - web/assets/javascripts/dashboard.js
165
182
  - web/assets/javascripts/metrics.js
166
- - web/assets/stylesheets/application-dark.css
167
- - web/assets/stylesheets/application-rtl.css
168
- - web/assets/stylesheets/application.css
169
- - web/assets/stylesheets/bootstrap-rtl.min.css
170
- - web/assets/stylesheets/bootstrap.css
183
+ - web/assets/stylesheets/style.css
171
184
  - web/locales/ar.yml
172
185
  - web/locales/cs.yml
173
186
  - web/locales/da.yml
@@ -187,7 +200,7 @@ files:
187
200
  - web/locales/nb.yml
188
201
  - web/locales/nl.yml
189
202
  - web/locales/pl.yml
190
- - web/locales/pt-br.yml
203
+ - web/locales/pt-BR.yml
191
204
  - web/locales/pt.yml
192
205
  - web/locales/ru.yml
193
206
  - web/locales/sv.yml
@@ -196,15 +209,14 @@ files:
196
209
  - web/locales/uk.yml
197
210
  - web/locales/ur.yml
198
211
  - web/locales/vi.yml
199
- - web/locales/zh-cn.yml
200
- - web/locales/zh-tw.yml
212
+ - web/locales/zh-CN.yml
213
+ - web/locales/zh-TW.yml
201
214
  - web/views/_footer.erb
202
215
  - web/views/_job_info.erb
203
216
  - web/views/_metrics_period_select.erb
204
217
  - web/views/_nav.erb
205
218
  - web/views/_paging.erb
206
219
  - web/views/_poll_link.erb
207
- - web/views/_status.erb
208
220
  - web/views/_summary.erb
209
221
  - web/views/busy.erb
210
222
  - web/views/dashboard.erb
@@ -214,6 +226,7 @@ files:
214
226
  - web/views/metrics.erb
215
227
  - web/views/metrics_for_job.erb
216
228
  - web/views/morgue.erb
229
+ - web/views/profiles.erb
217
230
  - web/views/queue.erb
218
231
  - web/views/queues.erb
219
232
  - web/views/retries.erb
@@ -237,7 +250,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
237
250
  requirements:
238
251
  - - ">="
239
252
  - !ruby/object:Gem::Version
240
- version: 2.7.0
253
+ version: 3.2.0
241
254
  required_rubygems_version: !ruby/object:Gem::Requirement
242
255
  requirements:
243
256
  - - ">="