sidekiq 6.5.10 → 8.1.7
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.
- checksums.yaml +4 -4
- data/Changes.md +568 -18
- data/README.md +66 -38
- data/bin/kiq +17 -0
- data/bin/lint-herb +13 -0
- data/bin/multi_queue_bench +271 -0
- data/bin/sidekiq +3 -8
- data/bin/sidekiqload +215 -118
- data/bin/sidekiqmon +3 -0
- data/bin/webload +69 -0
- data/lib/active_job/queue_adapters/sidekiq_adapter.rb +124 -0
- data/lib/generators/sidekiq/job_generator.rb +17 -3
- data/lib/generators/sidekiq/templates/job.rb.erb +1 -1
- data/lib/sidekiq/api.rb +526 -218
- data/lib/sidekiq/capsule.rb +135 -0
- data/lib/sidekiq/cli.rb +88 -96
- data/lib/sidekiq/client.rb +114 -47
- data/lib/sidekiq/component.rb +71 -4
- data/lib/sidekiq/config.rb +316 -0
- data/lib/sidekiq/deploy.rb +64 -0
- data/lib/sidekiq/embedded.rb +64 -0
- data/lib/sidekiq/fetch.rb +12 -14
- data/lib/sidekiq/iterable_job.rb +56 -0
- data/lib/sidekiq/job/interrupt_handler.rb +24 -0
- data/lib/sidekiq/job/iterable/active_record_enumerator.rb +53 -0
- data/lib/sidekiq/job/iterable/csv_enumerator.rb +47 -0
- data/lib/sidekiq/job/iterable/enumerators.rb +135 -0
- data/lib/sidekiq/job/iterable.rb +322 -0
- data/lib/sidekiq/job.rb +397 -10
- data/lib/sidekiq/job_logger.rb +14 -11
- data/lib/sidekiq/job_retry.rb +78 -28
- data/lib/sidekiq/job_util.rb +58 -16
- data/lib/sidekiq/launcher.rb +86 -70
- data/lib/sidekiq/loader.rb +57 -0
- data/lib/sidekiq/logger.rb +25 -94
- data/lib/sidekiq/manager.rb +11 -13
- data/lib/sidekiq/metrics/query.rb +84 -48
- data/lib/sidekiq/metrics/shared.rb +29 -14
- data/lib/sidekiq/metrics/tracking.rb +49 -30
- data/lib/sidekiq/middleware/chain.rb +19 -18
- data/lib/sidekiq/middleware/current_attributes.rb +78 -21
- data/lib/sidekiq/middleware/i18n.rb +2 -0
- data/lib/sidekiq/middleware/modules.rb +2 -0
- data/lib/sidekiq/monitor.rb +15 -5
- data/lib/sidekiq/paginator.rb +26 -4
- data/lib/sidekiq/processor.rb +78 -65
- data/lib/sidekiq/profiler.rb +73 -0
- data/lib/sidekiq/rails.rb +45 -60
- data/lib/sidekiq/redis_client_adapter.rb +35 -72
- data/lib/sidekiq/redis_connection.rb +54 -114
- data/lib/sidekiq/ring_buffer.rb +3 -0
- data/lib/sidekiq/scheduled.rb +28 -30
- data/lib/sidekiq/systemd.rb +2 -0
- data/lib/sidekiq/test_api.rb +331 -0
- data/lib/sidekiq/testing/inline.rb +2 -30
- data/lib/sidekiq/testing.rb +2 -342
- data/lib/sidekiq/transaction_aware_client.rb +23 -9
- data/lib/sidekiq/tui/controls.rb +53 -0
- data/lib/sidekiq/tui/filtering.rb +53 -0
- data/lib/sidekiq/tui/tabs/base_tab.rb +230 -0
- data/lib/sidekiq/tui/tabs/busy.rb +104 -0
- data/lib/sidekiq/tui/tabs/dead.rb +14 -0
- data/lib/sidekiq/tui/tabs/home.rb +115 -0
- data/lib/sidekiq/tui/tabs/metrics.rb +114 -0
- data/lib/sidekiq/tui/tabs/queues.rb +83 -0
- data/lib/sidekiq/tui/tabs/retries.rb +14 -0
- data/lib/sidekiq/tui/tabs/scheduled.rb +14 -0
- data/lib/sidekiq/tui/tabs/set_tab.rb +91 -0
- data/lib/sidekiq/tui/tabs.rb +15 -0
- data/lib/sidekiq/tui.rb +390 -0
- data/lib/sidekiq/version.rb +6 -1
- data/lib/sidekiq/web/action.rb +149 -64
- data/lib/sidekiq/web/application.rb +379 -281
- data/lib/sidekiq/web/config.rb +117 -0
- data/lib/sidekiq/web/helpers.rb +190 -71
- data/lib/sidekiq/web/router.rb +62 -75
- data/lib/sidekiq/web.rb +68 -101
- data/lib/sidekiq/worker_compatibility_alias.rb +13 -0
- data/lib/sidekiq.rb +85 -269
- data/sidekiq.gemspec +15 -11
- data/web/assets/images/logo.png +0 -0
- data/web/assets/images/status.png +0 -0
- data/web/assets/javascripts/application.js +84 -24
- data/web/assets/javascripts/base-charts.js +120 -0
- data/web/assets/javascripts/chartjs-adapter-date-fns.min.js +7 -0
- data/web/assets/javascripts/dashboard-charts.js +194 -0
- data/web/assets/javascripts/dashboard.js +18 -234
- data/web/assets/javascripts/metrics.js +138 -120
- data/web/assets/stylesheets/style.css +776 -0
- data/web/locales/ar.yml +72 -70
- data/web/locales/cs.yml +64 -62
- data/web/locales/da.yml +62 -53
- data/web/locales/de.yml +67 -65
- data/web/locales/el.yml +4 -7
- data/web/locales/en.yml +89 -71
- data/web/locales/es.yml +91 -68
- data/web/locales/fa.yml +67 -65
- data/web/locales/fr.yml +82 -67
- data/web/locales/gd.yml +110 -0
- data/web/locales/he.yml +67 -64
- data/web/locales/hi.yml +95 -59
- data/web/locales/it.yml +94 -54
- data/web/locales/ja.yml +69 -70
- data/web/locales/ko.yml +54 -52
- data/web/locales/lt.yml +68 -66
- data/web/locales/nb.yml +63 -61
- data/web/locales/nl.yml +54 -52
- data/web/locales/pl.yml +47 -45
- data/web/locales/{pt-br.yml → pt-BR.yml} +81 -70
- data/web/locales/pt.yml +53 -51
- data/web/locales/ru.yml +69 -66
- data/web/locales/sv.yml +55 -53
- data/web/locales/ta.yml +100 -64
- data/web/locales/tr.yml +102 -0
- data/web/locales/uk.yml +87 -61
- data/web/locales/ur.yml +66 -64
- data/web/locales/vi.yml +69 -67
- data/web/locales/zh-CN.yml +107 -0
- data/web/locales/{zh-tw.yml → zh-TW.yml} +13 -3
- data/web/views/_footer.html.erb +32 -0
- data/web/views/_job_info.html.erb +115 -0
- data/web/views/_metrics_period_select.html.erb +15 -0
- data/web/views/_nav.html.erb +45 -0
- data/web/views/_paging.html.erb +26 -0
- data/web/views/_poll_link.html.erb +4 -0
- data/web/views/_summary.html.erb +40 -0
- data/web/views/busy.html.erb +155 -0
- data/web/views/dashboard.html.erb +104 -0
- data/web/views/dead.html.erb +38 -0
- data/web/views/filtering.html.erb +6 -0
- data/web/views/layout.html.erb +26 -0
- data/web/views/metrics.html.erb +85 -0
- data/web/views/metrics_for_job.html.erb +58 -0
- data/web/views/morgue.html.erb +69 -0
- data/web/views/profiles.html.erb +43 -0
- data/web/views/queue.html.erb +57 -0
- data/web/views/queues.html.erb +46 -0
- data/web/views/retries.html.erb +77 -0
- data/web/views/retry.html.erb +39 -0
- data/web/views/scheduled.html.erb +64 -0
- data/web/views/{scheduled_job_info.erb → scheduled_job_info.html.erb} +3 -3
- metadata +113 -70
- data/lib/sidekiq/delay.rb +0 -43
- data/lib/sidekiq/extensions/action_mailer.rb +0 -48
- data/lib/sidekiq/extensions/active_record.rb +0 -43
- data/lib/sidekiq/extensions/class_methods.rb +0 -43
- data/lib/sidekiq/extensions/generic_proxy.rb +0 -33
- data/lib/sidekiq/metrics/deploy.rb +0 -47
- data/lib/sidekiq/web/csrf_protection.rb +0 -180
- data/lib/sidekiq/worker.rb +0 -370
- data/web/assets/javascripts/graph.js +0 -16
- data/web/assets/stylesheets/application-dark.css +0 -143
- data/web/assets/stylesheets/application-rtl.css +0 -242
- data/web/assets/stylesheets/application.css +0 -999
- data/web/assets/stylesheets/bootstrap-rtl.min.css +0 -9
- data/web/assets/stylesheets/bootstrap.css +0 -5
- data/web/locales/zh-cn.yml +0 -93
- data/web/views/_footer.erb +0 -20
- data/web/views/_job_info.erb +0 -89
- data/web/views/_nav.erb +0 -52
- data/web/views/_paging.erb +0 -23
- data/web/views/_poll_link.erb +0 -4
- data/web/views/_status.erb +0 -4
- data/web/views/_summary.erb +0 -40
- data/web/views/busy.erb +0 -137
- data/web/views/dashboard.erb +0 -84
- data/web/views/dead.erb +0 -34
- data/web/views/layout.erb +0 -42
- data/web/views/metrics.erb +0 -69
- data/web/views/metrics_for_job.erb +0 -87
- data/web/views/morgue.erb +0 -78
- data/web/views/queue.erb +0 -59
- data/web/views/queues.erb +0 -38
- data/web/views/retries.erb +0 -83
- data/web/views/retry.erb +0 -34
- data/web/views/scheduled.erb +0 -57
- /data/{LICENSE → LICENSE.txt} +0 -0
metadata
CHANGED
|
@@ -1,107 +1,133 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sidekiq
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 8.1.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Mike Perham
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 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
|
-
- - "<"
|
|
18
|
-
- !ruby/object:Gem::Version
|
|
19
|
-
version: '5'
|
|
20
16
|
- - ">="
|
|
21
17
|
- !ruby/object:Gem::Version
|
|
22
|
-
version:
|
|
18
|
+
version: 0.29.0
|
|
23
19
|
type: :runtime
|
|
24
20
|
prerelease: false
|
|
25
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
26
22
|
requirements:
|
|
27
|
-
- - "<"
|
|
28
|
-
- !ruby/object:Gem::Version
|
|
29
|
-
version: '5'
|
|
30
23
|
- - ">="
|
|
31
24
|
- !ruby/object:Gem::Version
|
|
32
|
-
version:
|
|
25
|
+
version: 0.29.0
|
|
33
26
|
- !ruby/object:Gem::Dependency
|
|
34
27
|
name: connection_pool
|
|
35
28
|
requirement: !ruby/object:Gem::Requirement
|
|
36
29
|
requirements:
|
|
37
|
-
- - "
|
|
30
|
+
- - ">="
|
|
38
31
|
- !ruby/object:Gem::Version
|
|
39
|
-
version:
|
|
32
|
+
version: 3.0.0
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - ">="
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: 3.0.0
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: rack
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
40
44
|
- - ">="
|
|
41
45
|
- !ruby/object:Gem::Version
|
|
42
|
-
version:
|
|
46
|
+
version: 3.2.0
|
|
43
47
|
type: :runtime
|
|
44
48
|
prerelease: false
|
|
45
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
46
50
|
requirements:
|
|
47
|
-
- - "
|
|
51
|
+
- - ">="
|
|
48
52
|
- !ruby/object:Gem::Version
|
|
49
|
-
version:
|
|
53
|
+
version: 3.2.0
|
|
54
|
+
- !ruby/object:Gem::Dependency
|
|
55
|
+
name: json
|
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
50
58
|
- - ">="
|
|
51
59
|
- !ruby/object:Gem::Version
|
|
52
|
-
version: 2.
|
|
60
|
+
version: 2.16.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.16.0
|
|
53
68
|
- !ruby/object:Gem::Dependency
|
|
54
|
-
name:
|
|
69
|
+
name: logger
|
|
55
70
|
requirement: !ruby/object:Gem::Requirement
|
|
56
71
|
requirements:
|
|
57
|
-
- - "
|
|
72
|
+
- - ">="
|
|
58
73
|
- !ruby/object:Gem::Version
|
|
59
|
-
version:
|
|
74
|
+
version: 1.7.0
|
|
60
75
|
type: :runtime
|
|
61
76
|
prerelease: false
|
|
62
77
|
version_requirements: !ruby/object:Gem::Requirement
|
|
63
78
|
requirements:
|
|
64
|
-
- - "
|
|
79
|
+
- - ">="
|
|
65
80
|
- !ruby/object:Gem::Version
|
|
66
|
-
version:
|
|
81
|
+
version: 1.7.0
|
|
67
82
|
description: Simple, efficient background processing for Ruby.
|
|
68
83
|
email:
|
|
69
|
-
-
|
|
84
|
+
- info@contribsys.com
|
|
70
85
|
executables:
|
|
86
|
+
- kiq
|
|
71
87
|
- sidekiq
|
|
72
88
|
- sidekiqmon
|
|
73
89
|
extensions: []
|
|
74
90
|
extra_rdoc_files: []
|
|
75
91
|
files:
|
|
76
92
|
- Changes.md
|
|
77
|
-
- LICENSE
|
|
93
|
+
- LICENSE.txt
|
|
78
94
|
- README.md
|
|
95
|
+
- bin/kiq
|
|
96
|
+
- bin/lint-herb
|
|
97
|
+
- bin/multi_queue_bench
|
|
79
98
|
- bin/sidekiq
|
|
80
99
|
- bin/sidekiqload
|
|
81
100
|
- bin/sidekiqmon
|
|
101
|
+
- bin/webload
|
|
102
|
+
- lib/active_job/queue_adapters/sidekiq_adapter.rb
|
|
82
103
|
- lib/generators/sidekiq/job_generator.rb
|
|
83
104
|
- lib/generators/sidekiq/templates/job.rb.erb
|
|
84
105
|
- lib/generators/sidekiq/templates/job_spec.rb.erb
|
|
85
106
|
- lib/generators/sidekiq/templates/job_test.rb.erb
|
|
86
107
|
- lib/sidekiq.rb
|
|
87
108
|
- lib/sidekiq/api.rb
|
|
109
|
+
- lib/sidekiq/capsule.rb
|
|
88
110
|
- lib/sidekiq/cli.rb
|
|
89
111
|
- lib/sidekiq/client.rb
|
|
90
112
|
- lib/sidekiq/component.rb
|
|
91
|
-
- lib/sidekiq/
|
|
92
|
-
- lib/sidekiq/
|
|
93
|
-
- lib/sidekiq/
|
|
94
|
-
- lib/sidekiq/extensions/class_methods.rb
|
|
95
|
-
- lib/sidekiq/extensions/generic_proxy.rb
|
|
113
|
+
- lib/sidekiq/config.rb
|
|
114
|
+
- lib/sidekiq/deploy.rb
|
|
115
|
+
- lib/sidekiq/embedded.rb
|
|
96
116
|
- lib/sidekiq/fetch.rb
|
|
117
|
+
- lib/sidekiq/iterable_job.rb
|
|
97
118
|
- lib/sidekiq/job.rb
|
|
119
|
+
- lib/sidekiq/job/interrupt_handler.rb
|
|
120
|
+
- lib/sidekiq/job/iterable.rb
|
|
121
|
+
- lib/sidekiq/job/iterable/active_record_enumerator.rb
|
|
122
|
+
- lib/sidekiq/job/iterable/csv_enumerator.rb
|
|
123
|
+
- lib/sidekiq/job/iterable/enumerators.rb
|
|
98
124
|
- lib/sidekiq/job_logger.rb
|
|
99
125
|
- lib/sidekiq/job_retry.rb
|
|
100
126
|
- lib/sidekiq/job_util.rb
|
|
101
127
|
- lib/sidekiq/launcher.rb
|
|
128
|
+
- lib/sidekiq/loader.rb
|
|
102
129
|
- lib/sidekiq/logger.rb
|
|
103
130
|
- lib/sidekiq/manager.rb
|
|
104
|
-
- lib/sidekiq/metrics/deploy.rb
|
|
105
131
|
- lib/sidekiq/metrics/query.rb
|
|
106
132
|
- lib/sidekiq/metrics/shared.rb
|
|
107
133
|
- lib/sidekiq/metrics/tracking.rb
|
|
@@ -112,6 +138,7 @@ files:
|
|
|
112
138
|
- lib/sidekiq/monitor.rb
|
|
113
139
|
- lib/sidekiq/paginator.rb
|
|
114
140
|
- lib/sidekiq/processor.rb
|
|
141
|
+
- lib/sidekiq/profiler.rb
|
|
115
142
|
- lib/sidekiq/rails.rb
|
|
116
143
|
- lib/sidekiq/redis_client_adapter.rb
|
|
117
144
|
- lib/sidekiq/redis_connection.rb
|
|
@@ -119,33 +146,45 @@ files:
|
|
|
119
146
|
- lib/sidekiq/scheduled.rb
|
|
120
147
|
- lib/sidekiq/sd_notify.rb
|
|
121
148
|
- lib/sidekiq/systemd.rb
|
|
149
|
+
- lib/sidekiq/test_api.rb
|
|
122
150
|
- lib/sidekiq/testing.rb
|
|
123
151
|
- lib/sidekiq/testing/inline.rb
|
|
124
152
|
- lib/sidekiq/transaction_aware_client.rb
|
|
153
|
+
- lib/sidekiq/tui.rb
|
|
154
|
+
- lib/sidekiq/tui/controls.rb
|
|
155
|
+
- lib/sidekiq/tui/filtering.rb
|
|
156
|
+
- lib/sidekiq/tui/tabs.rb
|
|
157
|
+
- lib/sidekiq/tui/tabs/base_tab.rb
|
|
158
|
+
- lib/sidekiq/tui/tabs/busy.rb
|
|
159
|
+
- lib/sidekiq/tui/tabs/dead.rb
|
|
160
|
+
- lib/sidekiq/tui/tabs/home.rb
|
|
161
|
+
- lib/sidekiq/tui/tabs/metrics.rb
|
|
162
|
+
- lib/sidekiq/tui/tabs/queues.rb
|
|
163
|
+
- lib/sidekiq/tui/tabs/retries.rb
|
|
164
|
+
- lib/sidekiq/tui/tabs/scheduled.rb
|
|
165
|
+
- lib/sidekiq/tui/tabs/set_tab.rb
|
|
125
166
|
- lib/sidekiq/version.rb
|
|
126
167
|
- lib/sidekiq/web.rb
|
|
127
168
|
- lib/sidekiq/web/action.rb
|
|
128
169
|
- lib/sidekiq/web/application.rb
|
|
129
|
-
- lib/sidekiq/web/
|
|
170
|
+
- lib/sidekiq/web/config.rb
|
|
130
171
|
- lib/sidekiq/web/helpers.rb
|
|
131
172
|
- lib/sidekiq/web/router.rb
|
|
132
|
-
- lib/sidekiq/
|
|
173
|
+
- lib/sidekiq/worker_compatibility_alias.rb
|
|
133
174
|
- sidekiq.gemspec
|
|
134
175
|
- web/assets/images/apple-touch-icon.png
|
|
135
176
|
- web/assets/images/favicon.ico
|
|
136
177
|
- web/assets/images/logo.png
|
|
137
178
|
- web/assets/images/status.png
|
|
138
179
|
- web/assets/javascripts/application.js
|
|
180
|
+
- web/assets/javascripts/base-charts.js
|
|
139
181
|
- web/assets/javascripts/chart.min.js
|
|
182
|
+
- web/assets/javascripts/chartjs-adapter-date-fns.min.js
|
|
140
183
|
- web/assets/javascripts/chartjs-plugin-annotation.min.js
|
|
184
|
+
- web/assets/javascripts/dashboard-charts.js
|
|
141
185
|
- web/assets/javascripts/dashboard.js
|
|
142
|
-
- web/assets/javascripts/graph.js
|
|
143
186
|
- web/assets/javascripts/metrics.js
|
|
144
|
-
- web/assets/stylesheets/
|
|
145
|
-
- web/assets/stylesheets/application-rtl.css
|
|
146
|
-
- web/assets/stylesheets/application.css
|
|
147
|
-
- web/assets/stylesheets/bootstrap-rtl.min.css
|
|
148
|
-
- web/assets/stylesheets/bootstrap.css
|
|
187
|
+
- web/assets/stylesheets/style.css
|
|
149
188
|
- web/locales/ar.yml
|
|
150
189
|
- web/locales/cs.yml
|
|
151
190
|
- web/locales/da.yml
|
|
@@ -155,6 +194,7 @@ files:
|
|
|
155
194
|
- web/locales/es.yml
|
|
156
195
|
- web/locales/fa.yml
|
|
157
196
|
- web/locales/fr.yml
|
|
197
|
+
- web/locales/gd.yml
|
|
158
198
|
- web/locales/he.yml
|
|
159
199
|
- web/locales/hi.yml
|
|
160
200
|
- web/locales/it.yml
|
|
@@ -164,46 +204,50 @@ files:
|
|
|
164
204
|
- web/locales/nb.yml
|
|
165
205
|
- web/locales/nl.yml
|
|
166
206
|
- web/locales/pl.yml
|
|
167
|
-
- web/locales/pt-
|
|
207
|
+
- web/locales/pt-BR.yml
|
|
168
208
|
- web/locales/pt.yml
|
|
169
209
|
- web/locales/ru.yml
|
|
170
210
|
- web/locales/sv.yml
|
|
171
211
|
- web/locales/ta.yml
|
|
212
|
+
- web/locales/tr.yml
|
|
172
213
|
- web/locales/uk.yml
|
|
173
214
|
- web/locales/ur.yml
|
|
174
215
|
- web/locales/vi.yml
|
|
175
|
-
- web/locales/zh-
|
|
176
|
-
- web/locales/zh-
|
|
177
|
-
- web/views/_footer.erb
|
|
178
|
-
- web/views/_job_info.erb
|
|
179
|
-
- web/views/
|
|
180
|
-
- web/views/
|
|
181
|
-
- web/views/
|
|
182
|
-
- web/views/
|
|
183
|
-
- web/views/_summary.erb
|
|
184
|
-
- web/views/busy.erb
|
|
185
|
-
- web/views/dashboard.erb
|
|
186
|
-
- web/views/dead.erb
|
|
187
|
-
- web/views/
|
|
188
|
-
- web/views/
|
|
189
|
-
- web/views/
|
|
190
|
-
- web/views/
|
|
191
|
-
- web/views/
|
|
192
|
-
- web/views/
|
|
193
|
-
- web/views/
|
|
194
|
-
- web/views/
|
|
195
|
-
- web/views/
|
|
196
|
-
- web/views/
|
|
216
|
+
- web/locales/zh-CN.yml
|
|
217
|
+
- web/locales/zh-TW.yml
|
|
218
|
+
- web/views/_footer.html.erb
|
|
219
|
+
- web/views/_job_info.html.erb
|
|
220
|
+
- web/views/_metrics_period_select.html.erb
|
|
221
|
+
- web/views/_nav.html.erb
|
|
222
|
+
- web/views/_paging.html.erb
|
|
223
|
+
- web/views/_poll_link.html.erb
|
|
224
|
+
- web/views/_summary.html.erb
|
|
225
|
+
- web/views/busy.html.erb
|
|
226
|
+
- web/views/dashboard.html.erb
|
|
227
|
+
- web/views/dead.html.erb
|
|
228
|
+
- web/views/filtering.html.erb
|
|
229
|
+
- web/views/layout.html.erb
|
|
230
|
+
- web/views/metrics.html.erb
|
|
231
|
+
- web/views/metrics_for_job.html.erb
|
|
232
|
+
- web/views/morgue.html.erb
|
|
233
|
+
- web/views/profiles.html.erb
|
|
234
|
+
- web/views/queue.html.erb
|
|
235
|
+
- web/views/queues.html.erb
|
|
236
|
+
- web/views/retries.html.erb
|
|
237
|
+
- web/views/retry.html.erb
|
|
238
|
+
- web/views/scheduled.html.erb
|
|
239
|
+
- web/views/scheduled_job_info.html.erb
|
|
197
240
|
homepage: https://sidekiq.org
|
|
198
241
|
licenses:
|
|
199
242
|
- LGPL-3.0
|
|
200
243
|
metadata:
|
|
201
244
|
homepage_uri: https://sidekiq.org
|
|
202
|
-
bug_tracker_uri: https://github.com/
|
|
203
|
-
documentation_uri: https://github.com/
|
|
204
|
-
changelog_uri: https://github.com/
|
|
205
|
-
source_code_uri: https://github.com/
|
|
206
|
-
|
|
245
|
+
bug_tracker_uri: https://github.com/sidekiq/sidekiq/issues
|
|
246
|
+
documentation_uri: https://github.com/sidekiq/sidekiq/wiki
|
|
247
|
+
changelog_uri: https://github.com/sidekiq/sidekiq/blob/main/Changes.md
|
|
248
|
+
source_code_uri: https://github.com/sidekiq/sidekiq
|
|
249
|
+
rubygems_mfa_required: 'true'
|
|
250
|
+
mailing_list_uri: https://www.rubyforum.org/tag/sidekiq
|
|
207
251
|
rdoc_options: []
|
|
208
252
|
require_paths:
|
|
209
253
|
- lib
|
|
@@ -211,15 +255,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
211
255
|
requirements:
|
|
212
256
|
- - ">="
|
|
213
257
|
- !ruby/object:Gem::Version
|
|
214
|
-
version: 2.
|
|
258
|
+
version: 3.2.0
|
|
215
259
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
216
260
|
requirements:
|
|
217
261
|
- - ">="
|
|
218
262
|
- !ruby/object:Gem::Version
|
|
219
263
|
version: '0'
|
|
220
264
|
requirements: []
|
|
221
|
-
rubygems_version:
|
|
222
|
-
signing_key:
|
|
265
|
+
rubygems_version: 4.0.16
|
|
223
266
|
specification_version: 4
|
|
224
267
|
summary: Simple, efficient background processing for Ruby
|
|
225
268
|
test_files: []
|
data/lib/sidekiq/delay.rb
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Sidekiq # :nodoc:
|
|
4
|
-
module Extensions
|
|
5
|
-
def self.enable_delay!
|
|
6
|
-
warn "Sidekiq's Delayed Extensions will be removed in Sidekiq 7.0", uplevel: 1
|
|
7
|
-
|
|
8
|
-
if defined?(::ActiveSupport)
|
|
9
|
-
require "sidekiq/extensions/active_record"
|
|
10
|
-
require "sidekiq/extensions/action_mailer"
|
|
11
|
-
|
|
12
|
-
# Need to patch Psych so it can autoload classes whose names are serialized
|
|
13
|
-
# in the delayed YAML.
|
|
14
|
-
Psych::Visitors::ToRuby.prepend(Sidekiq::Extensions::PsychAutoload)
|
|
15
|
-
|
|
16
|
-
ActiveSupport.on_load(:active_record) do
|
|
17
|
-
include Sidekiq::Extensions::ActiveRecord
|
|
18
|
-
end
|
|
19
|
-
ActiveSupport.on_load(:action_mailer) do
|
|
20
|
-
extend Sidekiq::Extensions::ActionMailer
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
require "sidekiq/extensions/class_methods"
|
|
25
|
-
Module.__send__(:include, Sidekiq::Extensions::Klass)
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
module PsychAutoload
|
|
29
|
-
def resolve_class(klass_name)
|
|
30
|
-
return nil if !klass_name || klass_name.empty?
|
|
31
|
-
# constantize
|
|
32
|
-
names = klass_name.split("::")
|
|
33
|
-
names.shift if names.empty? || names.first.empty?
|
|
34
|
-
|
|
35
|
-
names.inject(Object) do |constant, name|
|
|
36
|
-
constant.const_defined?(name) ? constant.const_get(name) : constant.const_missing(name)
|
|
37
|
-
end
|
|
38
|
-
rescue NameError
|
|
39
|
-
super
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
end
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "sidekiq/extensions/generic_proxy"
|
|
4
|
-
|
|
5
|
-
module Sidekiq
|
|
6
|
-
module Extensions
|
|
7
|
-
##
|
|
8
|
-
# Adds +delay+, +delay_for+ and +delay_until+ methods to ActionMailer to offload arbitrary email
|
|
9
|
-
# delivery to Sidekiq.
|
|
10
|
-
#
|
|
11
|
-
# @example
|
|
12
|
-
# UserMailer.delay.send_welcome_email(new_user)
|
|
13
|
-
# UserMailer.delay_for(5.days).send_welcome_email(new_user)
|
|
14
|
-
# UserMailer.delay_until(5.days.from_now).send_welcome_email(new_user)
|
|
15
|
-
class DelayedMailer
|
|
16
|
-
include Sidekiq::Worker
|
|
17
|
-
|
|
18
|
-
def perform(yml)
|
|
19
|
-
(target, method_name, args) = YAML.load(yml)
|
|
20
|
-
msg = target.public_send(method_name, *args)
|
|
21
|
-
# The email method can return nil, which causes ActionMailer to return
|
|
22
|
-
# an undeliverable empty message.
|
|
23
|
-
if msg
|
|
24
|
-
msg.deliver_now
|
|
25
|
-
else
|
|
26
|
-
raise "#{target.name}##{method_name} returned an undeliverable mail object"
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
module ActionMailer
|
|
32
|
-
def sidekiq_delay(options = {})
|
|
33
|
-
Proxy.new(DelayedMailer, self, options)
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
def sidekiq_delay_for(interval, options = {})
|
|
37
|
-
Proxy.new(DelayedMailer, self, options.merge("at" => Time.now.to_f + interval.to_f))
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def sidekiq_delay_until(timestamp, options = {})
|
|
41
|
-
Proxy.new(DelayedMailer, self, options.merge("at" => timestamp.to_f))
|
|
42
|
-
end
|
|
43
|
-
alias_method :delay, :sidekiq_delay
|
|
44
|
-
alias_method :delay_for, :sidekiq_delay_for
|
|
45
|
-
alias_method :delay_until, :sidekiq_delay_until
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
end
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "sidekiq/extensions/generic_proxy"
|
|
4
|
-
|
|
5
|
-
module Sidekiq
|
|
6
|
-
module Extensions
|
|
7
|
-
##
|
|
8
|
-
# Adds +delay+, +delay_for+ and +delay_until+ methods to ActiveRecord to offload instance method
|
|
9
|
-
# execution to Sidekiq.
|
|
10
|
-
#
|
|
11
|
-
# @example
|
|
12
|
-
# User.recent_signups.each { |user| user.delay.mark_as_awesome }
|
|
13
|
-
#
|
|
14
|
-
# Please note, this is not recommended as this will serialize the entire
|
|
15
|
-
# object to Redis. Your Sidekiq jobs should pass IDs, not entire instances.
|
|
16
|
-
# This is here for backwards compatibility with Delayed::Job only.
|
|
17
|
-
class DelayedModel
|
|
18
|
-
include Sidekiq::Worker
|
|
19
|
-
|
|
20
|
-
def perform(yml)
|
|
21
|
-
(target, method_name, args) = YAML.load(yml)
|
|
22
|
-
target.__send__(method_name, *args)
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
module ActiveRecord
|
|
27
|
-
def sidekiq_delay(options = {})
|
|
28
|
-
Proxy.new(DelayedModel, self, options)
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def sidekiq_delay_for(interval, options = {})
|
|
32
|
-
Proxy.new(DelayedModel, self, options.merge("at" => Time.now.to_f + interval.to_f))
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def sidekiq_delay_until(timestamp, options = {})
|
|
36
|
-
Proxy.new(DelayedModel, self, options.merge("at" => timestamp.to_f))
|
|
37
|
-
end
|
|
38
|
-
alias_method :delay, :sidekiq_delay
|
|
39
|
-
alias_method :delay_for, :sidekiq_delay_for
|
|
40
|
-
alias_method :delay_until, :sidekiq_delay_until
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
end
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "sidekiq/extensions/generic_proxy"
|
|
4
|
-
|
|
5
|
-
module Sidekiq
|
|
6
|
-
module Extensions
|
|
7
|
-
##
|
|
8
|
-
# Adds `delay`, `delay_for` and `delay_until` methods to all Classes to offload class method
|
|
9
|
-
# execution to Sidekiq.
|
|
10
|
-
#
|
|
11
|
-
# @example
|
|
12
|
-
# User.delay.delete_inactive
|
|
13
|
-
# Wikipedia.delay.download_changes_for(Date.today)
|
|
14
|
-
#
|
|
15
|
-
class DelayedClass
|
|
16
|
-
include Sidekiq::Worker
|
|
17
|
-
|
|
18
|
-
def perform(yml)
|
|
19
|
-
(target, method_name, args) = YAML.load(yml)
|
|
20
|
-
target.__send__(method_name, *args)
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
module Klass
|
|
25
|
-
def sidekiq_delay(options = {})
|
|
26
|
-
Proxy.new(DelayedClass, self, options)
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def sidekiq_delay_for(interval, options = {})
|
|
30
|
-
Proxy.new(DelayedClass, self, options.merge("at" => Time.now.to_f + interval.to_f))
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def sidekiq_delay_until(timestamp, options = {})
|
|
34
|
-
Proxy.new(DelayedClass, self, options.merge("at" => timestamp.to_f))
|
|
35
|
-
end
|
|
36
|
-
alias_method :delay, :sidekiq_delay
|
|
37
|
-
alias_method :delay_for, :sidekiq_delay_for
|
|
38
|
-
alias_method :delay_until, :sidekiq_delay_until
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
Module.__send__(:include, Sidekiq::Extensions::Klass) unless defined?(::Rails)
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "yaml"
|
|
4
|
-
|
|
5
|
-
module Sidekiq
|
|
6
|
-
module Extensions
|
|
7
|
-
SIZE_LIMIT = 8_192
|
|
8
|
-
|
|
9
|
-
class Proxy < BasicObject
|
|
10
|
-
def initialize(performable, target, options = {})
|
|
11
|
-
@performable = performable
|
|
12
|
-
@target = target
|
|
13
|
-
@opts = options.transform_keys(&:to_s)
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def method_missing(name, *args)
|
|
17
|
-
# Sidekiq has a limitation in that its message must be JSON.
|
|
18
|
-
# JSON can't round trip real Ruby objects so we use YAML to
|
|
19
|
-
# serialize the objects to a String. The YAML will be converted
|
|
20
|
-
# to JSON and then deserialized on the other side back into a
|
|
21
|
-
# Ruby object.
|
|
22
|
-
obj = [@target, name, args]
|
|
23
|
-
marshalled = ::YAML.dump(obj)
|
|
24
|
-
if marshalled.size > SIZE_LIMIT
|
|
25
|
-
::Sidekiq.logger.warn { "#{@target}.#{name} job argument is #{marshalled.bytesize} bytes, you should refactor it to reduce the size" }
|
|
26
|
-
end
|
|
27
|
-
@performable.client_push({"class" => @performable,
|
|
28
|
-
"args" => [marshalled],
|
|
29
|
-
"display_class" => "#{@target}.#{name}"}.merge(@opts))
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
require "sidekiq"
|
|
2
|
-
require "time"
|
|
3
|
-
|
|
4
|
-
# This file is designed to be required within the user's
|
|
5
|
-
# deployment script; it should need a bare minimum of dependencies.
|
|
6
|
-
#
|
|
7
|
-
# require "sidekiq/metrics/deploy"
|
|
8
|
-
# gitdesc = `git log -1 --format="%h %s"`.strip
|
|
9
|
-
# d = Sidekiq::Metrics::Deploy.new
|
|
10
|
-
# d.mark(label: gitdesc)
|
|
11
|
-
#
|
|
12
|
-
# Note that you cannot mark more than once per minute. This is a feature, not a bug.
|
|
13
|
-
module Sidekiq
|
|
14
|
-
module Metrics
|
|
15
|
-
class Deploy
|
|
16
|
-
MARK_TTL = 90 * 24 * 60 * 60 # 90 days
|
|
17
|
-
|
|
18
|
-
def initialize(pool = Sidekiq.redis_pool)
|
|
19
|
-
@pool = pool
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def mark(at: Time.now, label: "")
|
|
23
|
-
# we need to round the timestamp so that we gracefully
|
|
24
|
-
# handle an excepted common error in marking deploys:
|
|
25
|
-
# having every process mark its deploy, leading
|
|
26
|
-
# to N marks for each deploy. Instead we round the time
|
|
27
|
-
# to the minute so that multple marks within that minute
|
|
28
|
-
# will all naturally rollup into one mark per minute.
|
|
29
|
-
whence = at.utc
|
|
30
|
-
floor = Time.utc(whence.year, whence.month, whence.mday, whence.hour, whence.min, 0)
|
|
31
|
-
datecode = floor.strftime("%Y%m%d")
|
|
32
|
-
key = "#{datecode}-marks"
|
|
33
|
-
@pool.with do |c|
|
|
34
|
-
c.pipelined do |pipe|
|
|
35
|
-
pipe.hsetnx(key, floor.iso8601, label)
|
|
36
|
-
pipe.expire(key, MARK_TTL)
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def fetch(date = Time.now.utc.to_date)
|
|
42
|
-
datecode = date.strftime("%Y%m%d")
|
|
43
|
-
@pool.with { |c| c.hgetall("#{datecode}-marks") }
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
end
|