sidekiq 5.2.10 → 6.5.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) hide show
  1. checksums.yaml +4 -4
  2. data/Changes.md +422 -1
  3. data/LICENSE +3 -3
  4. data/README.md +24 -35
  5. data/bin/sidekiq +27 -3
  6. data/bin/sidekiqload +79 -67
  7. data/bin/sidekiqmon +8 -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 +527 -310
  13. data/lib/sidekiq/cli.rb +204 -208
  14. data/lib/sidekiq/client.rb +78 -82
  15. data/lib/sidekiq/component.rb +65 -0
  16. data/lib/sidekiq/delay.rb +8 -7
  17. data/lib/sidekiq/extensions/action_mailer.rb +13 -22
  18. data/lib/sidekiq/extensions/active_record.rb +13 -10
  19. data/lib/sidekiq/extensions/class_methods.rb +14 -11
  20. data/lib/sidekiq/extensions/generic_proxy.rb +7 -5
  21. data/lib/sidekiq/fetch.rb +50 -40
  22. data/lib/sidekiq/job.rb +13 -0
  23. data/lib/sidekiq/job_logger.rb +33 -7
  24. data/lib/sidekiq/job_retry.rb +126 -106
  25. data/lib/sidekiq/job_util.rb +71 -0
  26. data/lib/sidekiq/launcher.rb +177 -83
  27. data/lib/sidekiq/logger.rb +156 -0
  28. data/lib/sidekiq/manager.rb +40 -41
  29. data/lib/sidekiq/metrics/deploy.rb +47 -0
  30. data/lib/sidekiq/metrics/query.rb +153 -0
  31. data/lib/sidekiq/metrics/shared.rb +94 -0
  32. data/lib/sidekiq/metrics/tracking.rb +134 -0
  33. data/lib/sidekiq/middleware/chain.rb +102 -46
  34. data/lib/sidekiq/middleware/current_attributes.rb +63 -0
  35. data/lib/sidekiq/middleware/i18n.rb +7 -7
  36. data/lib/sidekiq/middleware/modules.rb +21 -0
  37. data/lib/sidekiq/monitor.rb +133 -0
  38. data/lib/sidekiq/paginator.rb +28 -16
  39. data/lib/sidekiq/processor.rb +104 -97
  40. data/lib/sidekiq/rails.rb +46 -37
  41. data/lib/sidekiq/redis_client_adapter.rb +154 -0
  42. data/lib/sidekiq/redis_connection.rb +108 -77
  43. data/lib/sidekiq/ring_buffer.rb +29 -0
  44. data/lib/sidekiq/scheduled.rb +105 -42
  45. data/lib/sidekiq/sd_notify.rb +149 -0
  46. data/lib/sidekiq/systemd.rb +24 -0
  47. data/lib/sidekiq/testing/inline.rb +6 -5
  48. data/lib/sidekiq/testing.rb +68 -58
  49. data/lib/sidekiq/transaction_aware_client.rb +45 -0
  50. data/lib/sidekiq/version.rb +2 -1
  51. data/lib/sidekiq/web/action.rb +15 -11
  52. data/lib/sidekiq/web/application.rb +103 -77
  53. data/lib/sidekiq/web/csrf_protection.rb +180 -0
  54. data/lib/sidekiq/web/helpers.rb +125 -95
  55. data/lib/sidekiq/web/router.rb +23 -19
  56. data/lib/sidekiq/web.rb +65 -105
  57. data/lib/sidekiq/worker.rb +259 -109
  58. data/lib/sidekiq.rb +170 -62
  59. data/sidekiq.gemspec +23 -16
  60. data/web/assets/images/apple-touch-icon.png +0 -0
  61. data/web/assets/javascripts/application.js +113 -61
  62. data/web/assets/javascripts/chart.min.js +13 -0
  63. data/web/assets/javascripts/chartjs-plugin-annotation.min.js +7 -0
  64. data/web/assets/javascripts/dashboard.js +53 -89
  65. data/web/assets/javascripts/graph.js +16 -0
  66. data/web/assets/javascripts/metrics.js +262 -0
  67. data/web/assets/stylesheets/application-dark.css +143 -0
  68. data/web/assets/stylesheets/application-rtl.css +0 -4
  69. data/web/assets/stylesheets/application.css +88 -233
  70. data/web/locales/ar.yml +8 -2
  71. data/web/locales/de.yml +14 -2
  72. data/web/locales/el.yml +43 -19
  73. data/web/locales/en.yml +13 -1
  74. data/web/locales/es.yml +18 -2
  75. data/web/locales/fr.yml +10 -3
  76. data/web/locales/ja.yml +14 -1
  77. data/web/locales/lt.yml +83 -0
  78. data/web/locales/pl.yml +4 -4
  79. data/web/locales/pt-br.yml +27 -9
  80. data/web/locales/ru.yml +4 -0
  81. data/web/locales/vi.yml +83 -0
  82. data/web/locales/zh-cn.yml +36 -11
  83. data/web/locales/zh-tw.yml +32 -7
  84. data/web/views/_footer.erb +1 -1
  85. data/web/views/_job_info.erb +3 -2
  86. data/web/views/_nav.erb +1 -1
  87. data/web/views/_poll_link.erb +2 -5
  88. data/web/views/_summary.erb +7 -7
  89. data/web/views/busy.erb +61 -22
  90. data/web/views/dashboard.erb +23 -14
  91. data/web/views/dead.erb +3 -3
  92. data/web/views/layout.erb +3 -1
  93. data/web/views/metrics.erb +69 -0
  94. data/web/views/metrics_for_job.erb +87 -0
  95. data/web/views/morgue.erb +9 -6
  96. data/web/views/queue.erb +23 -10
  97. data/web/views/queues.erb +10 -2
  98. data/web/views/retries.erb +11 -8
  99. data/web/views/retry.erb +3 -3
  100. data/web/views/scheduled.erb +5 -2
  101. metadata +58 -63
  102. data/.circleci/config.yml +0 -61
  103. data/.github/contributing.md +0 -32
  104. data/.github/issue_template.md +0 -11
  105. data/.gitignore +0 -15
  106. data/.travis.yml +0 -11
  107. data/3.0-Upgrade.md +0 -70
  108. data/4.0-Upgrade.md +0 -53
  109. data/5.0-Upgrade.md +0 -56
  110. data/COMM-LICENSE +0 -97
  111. data/Ent-Changes.md +0 -238
  112. data/Gemfile +0 -19
  113. data/Pro-2.0-Upgrade.md +0 -138
  114. data/Pro-3.0-Upgrade.md +0 -44
  115. data/Pro-4.0-Upgrade.md +0 -35
  116. data/Pro-Changes.md +0 -759
  117. data/Rakefile +0 -9
  118. data/bin/sidekiqctl +0 -20
  119. data/code_of_conduct.md +0 -50
  120. data/lib/generators/sidekiq/worker_generator.rb +0 -49
  121. data/lib/sidekiq/core_ext.rb +0 -1
  122. data/lib/sidekiq/ctl.rb +0 -221
  123. data/lib/sidekiq/exception_handler.rb +0 -29
  124. data/lib/sidekiq/logging.rb +0 -122
  125. data/lib/sidekiq/middleware/server/active_record.rb +0 -23
  126. data/lib/sidekiq/util.rb +0 -66
data/web/views/morgue.erb CHANGED
@@ -14,7 +14,7 @@
14
14
  <form action="<%= root_path %>morgue" method="post">
15
15
  <%= csrf_tag %>
16
16
  <div class="table_container">
17
- <table class="table table-striped table-bordered table-white">
17
+ <table class="table table-striped table-bordered table-hover">
18
18
  <thead>
19
19
  <tr>
20
20
  <th class="table-checkbox checkbox-column">
@@ -42,7 +42,10 @@
42
42
  <td>
43
43
  <a href="<%= root_path %>queues/<%= entry.queue %>"><%= entry.queue %></a>
44
44
  </td>
45
- <td><%= entry.display_class %></td>
45
+ <td>
46
+ <%= entry.display_class %>
47
+ <%= display_tags(entry, "dead") %>
48
+ </td>
46
49
  <td>
47
50
  <div class="args"><%= display_args(entry.display_args) %></div>
48
51
  </td>
@@ -55,18 +58,18 @@
55
58
  <% end %>
56
59
  </table>
57
60
  </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') %>" />
61
+ <input class="btn btn-primary pull-left flip" type="submit" name="retry" value="<%= t('RetryNow') %>" />
62
+ <input class="btn btn-danger pull-left flip" type="submit" name="delete" value="<%= t('Delete') %>" />
60
63
  </form>
61
64
 
62
65
  <% unfiltered? do %>
63
66
  <form action="<%= root_path %>morgue/all/delete" method="post">
64
67
  <%= csrf_tag %>
65
- <input class="btn btn-danger btn-xs pull-right flip" type="submit" name="delete" value="<%= t('DeleteAll') %>" data-confirm="<%= t('AreYouSure') %>" />
68
+ <input class="btn btn-danger pull-right flip" type="submit" name="delete" value="<%= t('DeleteAll') %>" data-confirm="<%= t('AreYouSure') %>" />
66
69
  </form>
67
70
  <form action="<%= root_path %>morgue/all/retry" method="post">
68
71
  <%= csrf_tag %>
69
- <input class="btn btn-danger btn-xs pull-right flip" type="submit" name="retry" value="<%= t('RetryAll') %>" data-confirm="<%= t('AreYouSure') %>" />
72
+ <input class="btn btn-danger pull-right flip" type="submit" name="retry" value="<%= t('RetryAll') %>" data-confirm="<%= t('AreYouSure') %>" />
70
73
  </form>
71
74
  <% end %>
72
75
 
data/web/views/queue.erb CHANGED
@@ -15,27 +15,40 @@
15
15
  <div class="table_container">
16
16
  <table class="queue table table-hover table-bordered table-striped">
17
17
  <thead>
18
+ <th><a href="<%= url %>?direction=<%= params[:direction] == 'asc' ? 'desc' : 'asc' %>"># <%= sort_direction_label %></a></th>
18
19
  <th><%= t('Job') %></th>
19
20
  <th><%= t('Arguments') %></th>
21
+ <th><%= t('Context') %></th>
20
22
  <th></th>
21
23
  </thead>
22
- <% @messages.each_with_index do |msg, index| %>
23
- <tr>
24
- <td><%= h(msg.display_class) %></td>
24
+ <% @jobs.each_with_index do |job, index| %>
25
+ <tr title="<%= job.jid %>">
26
+ <% if params[:direction] == 'asc' %>
27
+ <td><%= @count * (@current_page - 1) + index + 1 %></td>
28
+ <% else %>
29
+ <td><%= @total_size - (@count * (@current_page - 1) + index) %></td>
30
+ <% end %>
25
31
  <td>
26
- <% a = msg.display_args %>
32
+ <%= h(job.display_class) %>
33
+ <%= display_tags(job, nil) %>
34
+ </td>
35
+ <td>
36
+ <% a = job.display_args %>
27
37
  <% 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>
38
+ <span id="job_<%= index %>"><%= h(a.inspect[0..100]) + "... " %></span>
39
+ <button data-toggle="job_<%= index %>_full" class="btn btn-default btn-xs"><%= t('ShowAll') %></button>
40
+ <div class="toggle" id="job_<%= index %>_full"><%= display_args(a) %></div>
31
41
  <% else %>
32
- <%= display_args(msg.display_args) %>
42
+ <%= display_args(job.display_args) %>
33
43
  <% end %>
34
44
  </td>
45
+ <td>
46
+ <%= h(job["cattr"].inspect) if job["cattr"]&.any? %>
47
+ </td>
35
48
  <td>
36
49
  <form action="<%= root_path %>queues/<%= CGI.escape(@name) %>/delete" method="post">
37
50
  <%= csrf_tag %>
38
- <input name="key_val" value="<%= h msg.value %>" type="hidden" />
51
+ <input name="key_val" value="<%= h job.value %>" type="hidden" />
39
52
  <input class="btn btn-danger btn-xs" type="submit" name="delete" value="<%= t('Delete') %>" data-confirm="<%= t('AreYouSure') %>" />
40
53
  </form>
41
54
  </td>
@@ -43,4 +56,4 @@
43
56
  <% end %>
44
57
  </table>
45
58
  </div>
46
- <%= erb :_paging, locals: { url: "#{root_path}queues/#{@name}" } %>
59
+ <%= erb :_paging, locals: { url: "#{root_path}queues/#{CGI.escape(@name)}" } %>
data/web/views/queues.erb CHANGED
@@ -1,7 +1,7 @@
1
1
  <h3><%= t('Queues') %></h3>
2
2
 
3
3
  <div class="table_container">
4
- <table class="queues table table-hover table-bordered table-striped table-white">
4
+ <table class="queues table table-hover table-bordered table-striped">
5
5
  <thead>
6
6
  <th><%= t('Queue') %></th>
7
7
  <th><%= t('Size') %></th>
@@ -21,7 +21,15 @@
21
21
  <td class="delete-confirm">
22
22
  <form action="<%=root_path %>queues/<%= CGI.escape(queue.name) %>" method="post">
23
23
  <%= 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)) %>" />
24
+ <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)) %>" />
25
+
26
+ <% if Sidekiq.pro? %>
27
+ <% if queue.paused? %>
28
+ <input class="btn btn-danger" type="submit" name="unpause" value="<%= t('Unpause') %>" />
29
+ <% else %>
30
+ <input class="btn btn-danger" type="submit" name="pause" value="<%= t('Pause') %>" />
31
+ <% end %>
32
+ <% end %>
25
33
  </form>
26
34
  </td>
27
35
  </tr>
@@ -14,7 +14,7 @@
14
14
  <form action="<%= root_path %>retries" method="post">
15
15
  <%= csrf_tag %>
16
16
  <div class="table_container">
17
- <table class="table table-striped table-bordered table-white">
17
+ <table class="table table-striped table-bordered table-hover">
18
18
  <thead>
19
19
  <tr>
20
20
  <th class="table-checkbox checkbox-column">
@@ -44,7 +44,10 @@
44
44
  <td>
45
45
  <a href="<%= root_path %>queues/<%= entry.queue %>"><%= entry.queue %></a>
46
46
  </td>
47
- <td><%= entry.display_class %></td>
47
+ <td>
48
+ <%= entry.display_class %>
49
+ <%= display_tags(entry, "retries") %>
50
+ </td>
48
51
  <td>
49
52
  <div class="args"><%= display_args(entry.display_args) %></div>
50
53
  </td>
@@ -55,23 +58,23 @@
55
58
  <% end %>
56
59
  </table>
57
60
  </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') %>" />
61
+ <input class="btn btn-primary pull-left flip" type="submit" name="retry" value="<%= t('RetryNow') %>" />
62
+ <input class="btn btn-danger pull-left flip" type="submit" name="delete" value="<%= t('Delete') %>" />
63
+ <input class="btn btn-danger pull-left flip" type="submit" name="kill" value="<%= t('Kill') %>" />
61
64
  </form>
62
65
 
63
66
  <% unfiltered? do %>
64
67
  <form action="<%= root_path %>retries/all/delete" method="post">
65
68
  <%= csrf_tag %>
66
- <input class="btn btn-danger btn-xs pull-right flip" type="submit" name="delete" value="<%= t('DeleteAll') %>" data-confirm="<%= t('AreYouSure') %>" />
69
+ <input class="btn btn-danger pull-right flip" type="submit" name="delete" value="<%= t('DeleteAll') %>" data-confirm="<%= t('AreYouSure') %>" />
67
70
  </form>
68
71
  <form action="<%= root_path %>retries/all/retry" method="post">
69
72
  <%= csrf_tag %>
70
- <input class="btn btn-danger btn-xs pull-right flip" type="submit" name="retry" value="<%= t('RetryAll') %>" data-confirm="<%= t('AreYouSure') %>" />
73
+ <input class="btn btn-danger pull-right flip" type="submit" name="retry" value="<%= t('RetryAll') %>" data-confirm="<%= t('AreYouSure') %>" />
71
74
  </form>
72
75
  <form action="<%= root_path %>retries/all/kill" method="post">
73
76
  <%= csrf_tag %>
74
- <input class="btn btn-danger btn-xs pull-right flip" type="submit" name="kill" value="<%= t('KillAll') %>" data-confirm="<%= t('AreYouSure') %>" />
77
+ <input class="btn btn-danger pull-right flip" type="submit" name="kill" value="<%= t('KillAll') %>" data-confirm="<%= t('AreYouSure') %>" />
75
78
  </form>
76
79
  <% end %>
77
80
 
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 %>
@@ -15,7 +15,7 @@
15
15
  <form action="<%= root_path %>scheduled" method="post">
16
16
  <%= csrf_tag %>
17
17
  <div class="table_container">
18
- <table class="table table-striped table-bordered table-white">
18
+ <table class="table table-striped table-bordered table-hover">
19
19
  <thead>
20
20
  <tr>
21
21
  <th class="checkbox-column">
@@ -38,7 +38,10 @@
38
38
  <td>
39
39
  <a href="<%= root_path %>queues/<%= entry.queue %>"><%= entry.queue %></a>
40
40
  </td>
41
- <td><%= entry.display_class %></td>
41
+ <td>
42
+ <%= entry.display_class %>
43
+ <%= display_tags(entry, "scheduled") %>
44
+ </td>
42
45
  <td>
43
46
  <div class="args"><%= display_args(entry.display_args) %></div>
44
47
  </td>
metadata CHANGED
@@ -1,55 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.10
4
+ version: 6.5.12
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-02-02 00:00:00.000000000 Z
11
+ date: 2023-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '4.5'
20
17
  - - "<"
21
18
  - !ruby/object:Gem::Version
22
- version: 4.6.0
19
+ version: '5'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 4.5.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - "~>"
28
- - !ruby/object:Gem::Version
29
- version: '4.5'
30
27
  - - "<"
31
28
  - !ruby/object:Gem::Version
32
- version: 4.6.0
29
+ version: '5'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 4.5.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: connection_pool
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - "~>"
37
+ - - "<"
38
38
  - !ruby/object:Gem::Version
39
- version: '2.2'
39
+ version: '3'
40
40
  - - ">="
41
41
  - !ruby/object:Gem::Version
42
- version: 2.2.2
42
+ version: 2.2.5
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - "~>"
47
+ - - "<"
48
48
  - !ruby/object:Gem::Version
49
- version: '2.2'
49
+ version: '3'
50
50
  - - ">="
51
51
  - !ruby/object:Gem::Version
52
- version: 2.2.2
52
+ version: 2.2.5
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: rack
55
55
  requirement: !ruby/object:Gem::Requirement
@@ -64,98 +64,84 @@ dependencies:
64
64
  - - "~>"
65
65
  - !ruby/object:Gem::Version
66
66
  version: '2.0'
67
- - !ruby/object:Gem::Dependency
68
- name: rack-protection
69
- requirement: !ruby/object:Gem::Requirement
70
- requirements:
71
- - - ">="
72
- - !ruby/object:Gem::Version
73
- version: 1.5.0
74
- type: :runtime
75
- prerelease: false
76
- version_requirements: !ruby/object:Gem::Requirement
77
- requirements:
78
- - - ">="
79
- - !ruby/object:Gem::Version
80
- version: 1.5.0
81
67
  description: Simple, efficient background processing for Ruby.
82
68
  email:
83
69
  - mperham@gmail.com
84
70
  executables:
85
71
  - sidekiq
86
- - sidekiqctl
72
+ - sidekiqmon
87
73
  extensions: []
88
74
  extra_rdoc_files: []
89
75
  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
76
  - Changes.md
100
- - Ent-Changes.md
101
- - Gemfile
102
77
  - LICENSE
103
- - Pro-2.0-Upgrade.md
104
- - Pro-3.0-Upgrade.md
105
- - Pro-4.0-Upgrade.md
106
- - Pro-Changes.md
107
78
  - README.md
108
- - Rakefile
109
79
  - bin/sidekiq
110
- - bin/sidekiqctl
111
80
  - 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
81
+ - bin/sidekiqmon
82
+ - lib/generators/sidekiq/job_generator.rb
83
+ - lib/generators/sidekiq/templates/job.rb.erb
84
+ - lib/generators/sidekiq/templates/job_spec.rb.erb
85
+ - lib/generators/sidekiq/templates/job_test.rb.erb
117
86
  - lib/sidekiq.rb
118
87
  - lib/sidekiq/api.rb
119
88
  - lib/sidekiq/cli.rb
120
89
  - lib/sidekiq/client.rb
121
- - lib/sidekiq/core_ext.rb
122
- - lib/sidekiq/ctl.rb
90
+ - lib/sidekiq/component.rb
123
91
  - lib/sidekiq/delay.rb
124
- - lib/sidekiq/exception_handler.rb
125
92
  - lib/sidekiq/extensions/action_mailer.rb
126
93
  - lib/sidekiq/extensions/active_record.rb
127
94
  - lib/sidekiq/extensions/class_methods.rb
128
95
  - lib/sidekiq/extensions/generic_proxy.rb
129
96
  - lib/sidekiq/fetch.rb
97
+ - lib/sidekiq/job.rb
130
98
  - lib/sidekiq/job_logger.rb
131
99
  - lib/sidekiq/job_retry.rb
100
+ - lib/sidekiq/job_util.rb
132
101
  - lib/sidekiq/launcher.rb
133
- - lib/sidekiq/logging.rb
102
+ - lib/sidekiq/logger.rb
134
103
  - lib/sidekiq/manager.rb
104
+ - lib/sidekiq/metrics/deploy.rb
105
+ - lib/sidekiq/metrics/query.rb
106
+ - lib/sidekiq/metrics/shared.rb
107
+ - lib/sidekiq/metrics/tracking.rb
135
108
  - lib/sidekiq/middleware/chain.rb
109
+ - lib/sidekiq/middleware/current_attributes.rb
136
110
  - lib/sidekiq/middleware/i18n.rb
137
- - lib/sidekiq/middleware/server/active_record.rb
111
+ - lib/sidekiq/middleware/modules.rb
112
+ - lib/sidekiq/monitor.rb
138
113
  - lib/sidekiq/paginator.rb
139
114
  - lib/sidekiq/processor.rb
140
115
  - lib/sidekiq/rails.rb
116
+ - lib/sidekiq/redis_client_adapter.rb
141
117
  - lib/sidekiq/redis_connection.rb
118
+ - lib/sidekiq/ring_buffer.rb
142
119
  - lib/sidekiq/scheduled.rb
120
+ - lib/sidekiq/sd_notify.rb
121
+ - lib/sidekiq/systemd.rb
143
122
  - lib/sidekiq/testing.rb
144
123
  - lib/sidekiq/testing/inline.rb
145
- - lib/sidekiq/util.rb
124
+ - lib/sidekiq/transaction_aware_client.rb
146
125
  - lib/sidekiq/version.rb
147
126
  - lib/sidekiq/web.rb
148
127
  - lib/sidekiq/web/action.rb
149
128
  - lib/sidekiq/web/application.rb
129
+ - lib/sidekiq/web/csrf_protection.rb
150
130
  - lib/sidekiq/web/helpers.rb
151
131
  - lib/sidekiq/web/router.rb
152
132
  - lib/sidekiq/worker.rb
153
133
  - sidekiq.gemspec
134
+ - web/assets/images/apple-touch-icon.png
154
135
  - web/assets/images/favicon.ico
155
136
  - web/assets/images/logo.png
156
137
  - web/assets/images/status.png
157
138
  - web/assets/javascripts/application.js
139
+ - web/assets/javascripts/chart.min.js
140
+ - web/assets/javascripts/chartjs-plugin-annotation.min.js
158
141
  - web/assets/javascripts/dashboard.js
142
+ - web/assets/javascripts/graph.js
143
+ - web/assets/javascripts/metrics.js
144
+ - web/assets/stylesheets/application-dark.css
159
145
  - web/assets/stylesheets/application-rtl.css
160
146
  - web/assets/stylesheets/application.css
161
147
  - web/assets/stylesheets/bootstrap-rtl.min.css
@@ -174,6 +160,7 @@ files:
174
160
  - web/locales/it.yml
175
161
  - web/locales/ja.yml
176
162
  - web/locales/ko.yml
163
+ - web/locales/lt.yml
177
164
  - web/locales/nb.yml
178
165
  - web/locales/nl.yml
179
166
  - web/locales/pl.yml
@@ -184,6 +171,7 @@ files:
184
171
  - web/locales/ta.yml
185
172
  - web/locales/uk.yml
186
173
  - web/locales/ur.yml
174
+ - web/locales/vi.yml
187
175
  - web/locales/zh-cn.yml
188
176
  - web/locales/zh-tw.yml
189
177
  - web/views/_footer.erb
@@ -197,6 +185,8 @@ files:
197
185
  - web/views/dashboard.erb
198
186
  - web/views/dead.erb
199
187
  - web/views/layout.erb
188
+ - web/views/metrics.erb
189
+ - web/views/metrics_for_job.erb
200
190
  - web/views/morgue.erb
201
191
  - web/views/queue.erb
202
192
  - web/views/queues.erb
@@ -204,10 +194,15 @@ files:
204
194
  - web/views/retry.erb
205
195
  - web/views/scheduled.erb
206
196
  - web/views/scheduled_job_info.erb
207
- homepage: http://sidekiq.org
197
+ homepage: https://sidekiq.org
208
198
  licenses:
209
199
  - LGPL-3.0
210
- metadata: {}
200
+ metadata:
201
+ homepage_uri: https://sidekiq.org
202
+ bug_tracker_uri: https://github.com/mperham/sidekiq/issues
203
+ documentation_uri: https://github.com/mperham/sidekiq/wiki
204
+ changelog_uri: https://github.com/mperham/sidekiq/blob/main/Changes.md
205
+ source_code_uri: https://github.com/mperham/sidekiq
211
206
  post_install_message:
212
207
  rdoc_options: []
213
208
  require_paths:
@@ -216,14 +211,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
216
211
  requirements:
217
212
  - - ">="
218
213
  - !ruby/object:Gem::Version
219
- version: 2.2.2
214
+ version: 2.5.0
220
215
  required_rubygems_version: !ruby/object:Gem::Requirement
221
216
  requirements:
222
217
  - - ">="
223
218
  - !ruby/object:Gem::Version
224
219
  version: '0'
225
220
  requirements: []
226
- rubygems_version: 3.2.32
221
+ rubygems_version: 3.4.20
227
222
  signing_key:
228
223
  specification_version: 4
229
224
  summary: Simple, efficient background processing for Ruby
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