sidekiq 6.2.2 → 8.1.5
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 +726 -11
- data/LICENSE.txt +9 -0
- data/README.md +70 -39
- data/bin/kiq +17 -0
- data/bin/lint-herb +13 -0
- data/bin/multi_queue_bench +271 -0
- data/bin/sidekiq +4 -9
- data/bin/sidekiqload +214 -115
- data/bin/sidekiqmon +4 -1
- data/bin/webload +69 -0
- data/lib/active_job/queue_adapters/sidekiq_adapter.rb +124 -0
- data/lib/generators/sidekiq/job_generator.rb +71 -0
- data/lib/generators/sidekiq/templates/{worker.rb.erb → job.rb.erb} +3 -3
- data/lib/generators/sidekiq/templates/{worker_spec.rb.erb → job_spec.rb.erb} +1 -1
- data/lib/generators/sidekiq/templates/{worker_test.rb.erb → job_test.rb.erb} +1 -1
- data/lib/sidekiq/api.rb +729 -264
- data/lib/sidekiq/capsule.rb +135 -0
- data/lib/sidekiq/cli.rb +124 -100
- data/lib/sidekiq/client.rb +153 -106
- data/lib/sidekiq/component.rb +132 -0
- data/lib/sidekiq/config.rb +320 -0
- data/lib/sidekiq/deploy.rb +64 -0
- data/lib/sidekiq/embedded.rb +64 -0
- data/lib/sidekiq/fetch.rb +27 -26
- 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 -5
- data/lib/sidekiq/job_logger.rb +23 -32
- data/lib/sidekiq/job_retry.rb +141 -68
- data/lib/sidekiq/job_util.rb +113 -0
- data/lib/sidekiq/launcher.rb +122 -98
- data/lib/sidekiq/loader.rb +57 -0
- data/lib/sidekiq/logger.rb +27 -106
- data/lib/sidekiq/manager.rb +41 -43
- data/lib/sidekiq/metrics/query.rb +184 -0
- data/lib/sidekiq/metrics/shared.rb +109 -0
- data/lib/sidekiq/metrics/tracking.rb +153 -0
- data/lib/sidekiq/middleware/chain.rb +96 -51
- data/lib/sidekiq/middleware/current_attributes.rb +120 -0
- data/lib/sidekiq/middleware/i18n.rb +8 -4
- data/lib/sidekiq/middleware/modules.rb +23 -0
- data/lib/sidekiq/monitor.rb +16 -6
- data/lib/sidekiq/paginator.rb +37 -10
- data/lib/sidekiq/processor.rb +105 -87
- data/lib/sidekiq/profiler.rb +73 -0
- data/lib/sidekiq/rails.rb +49 -36
- data/lib/sidekiq/redis_client_adapter.rb +117 -0
- data/lib/sidekiq/redis_connection.rb +55 -86
- data/lib/sidekiq/ring_buffer.rb +32 -0
- data/lib/sidekiq/scheduled.rb +106 -50
- 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 +59 -0
- data/lib/sidekiq/tui/controls.rb +53 -0
- data/lib/sidekiq/tui/filtering.rb +53 -0
- data/lib/sidekiq/tui/tabs/base_tab.rb +204 -0
- data/lib/sidekiq/tui/tabs/busy.rb +118 -0
- data/lib/sidekiq/tui/tabs/dead.rb +19 -0
- data/lib/sidekiq/tui/tabs/home.rb +144 -0
- data/lib/sidekiq/tui/tabs/metrics.rb +131 -0
- data/lib/sidekiq/tui/tabs/queues.rb +95 -0
- data/lib/sidekiq/tui/tabs/retries.rb +19 -0
- data/lib/sidekiq/tui/tabs/scheduled.rb +19 -0
- data/lib/sidekiq/tui/tabs/set_tab.rb +96 -0
- data/lib/sidekiq/tui/tabs.rb +15 -0
- data/lib/sidekiq/tui.rb +382 -0
- data/lib/sidekiq/version.rb +6 -1
- data/lib/sidekiq/web/action.rb +149 -64
- data/lib/sidekiq/web/application.rb +376 -268
- data/lib/sidekiq/web/config.rb +117 -0
- data/lib/sidekiq/web/helpers.rb +213 -87
- data/lib/sidekiq/web/router.rb +61 -74
- data/lib/sidekiq/web.rb +71 -100
- data/lib/sidekiq/worker_compatibility_alias.rb +13 -0
- data/lib/sidekiq.rb +95 -196
- data/sidekiq.gemspec +14 -11
- data/web/assets/images/logo.png +0 -0
- data/web/assets/images/status.png +0 -0
- data/web/assets/javascripts/application.js +171 -57
- data/web/assets/javascripts/base-charts.js +120 -0
- data/web/assets/javascripts/chart.min.js +13 -0
- data/web/assets/javascripts/chartjs-adapter-date-fns.min.js +7 -0
- data/web/assets/javascripts/chartjs-plugin-annotation.min.js +7 -0
- data/web/assets/javascripts/dashboard-charts.js +194 -0
- data/web/assets/javascripts/dashboard.js +41 -274
- data/web/assets/javascripts/metrics.js +280 -0
- 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 +45 -24
- data/web/locales/en.yml +93 -69
- 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 +61 -59
- data/web/locales/it.yml +94 -54
- data/web/locales/ja.yml +74 -68
- 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} +85 -56
- 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 +62 -60
- 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} +44 -9
- 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 +151 -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 +130 -61
- data/LICENSE +0 -9
- data/lib/generators/sidekiq/worker_generator.rb +0 -57
- data/lib/sidekiq/delay.rb +0 -41
- data/lib/sidekiq/exception_handler.rb +0 -27
- 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/util.rb +0 -95
- data/lib/sidekiq/web/csrf_protection.rb +0 -180
- data/lib/sidekiq/worker.rb +0 -244
- data/web/assets/stylesheets/application-dark.css +0 -147
- data/web/assets/stylesheets/application-rtl.css +0 -246
- data/web/assets/stylesheets/application.css +0 -1053
- 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 -68
- 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 -7
- data/web/views/_status.erb +0 -4
- data/web/views/_summary.erb +0 -40
- data/web/views/busy.erb +0 -132
- data/web/views/dashboard.erb +0 -83
- data/web/views/dead.erb +0 -34
- data/web/views/layout.erb +0 -42
- data/web/views/morgue.erb +0 -78
- data/web/views/queue.erb +0 -55
- 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
metadata
CHANGED
|
@@ -1,126 +1,190 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sidekiq
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 8.1.5
|
|
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
16
|
- - ">="
|
|
18
17
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
18
|
+
version: 0.29.0
|
|
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:
|
|
25
|
+
version: 0.29.0
|
|
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:
|
|
32
|
+
version: 3.0.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:
|
|
39
|
+
version: 3.0.0
|
|
41
40
|
- !ruby/object:Gem::Dependency
|
|
42
41
|
name: rack
|
|
43
42
|
requirement: !ruby/object:Gem::Requirement
|
|
44
43
|
requirements:
|
|
45
|
-
- - "
|
|
44
|
+
- - ">="
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: 3.2.0
|
|
47
|
+
type: :runtime
|
|
48
|
+
prerelease: false
|
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - ">="
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: 3.2.0
|
|
54
|
+
- !ruby/object:Gem::Dependency
|
|
55
|
+
name: json
|
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - ">="
|
|
46
59
|
- !ruby/object:Gem::Version
|
|
47
|
-
version:
|
|
60
|
+
version: 2.16.0
|
|
48
61
|
type: :runtime
|
|
49
62
|
prerelease: false
|
|
50
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
64
|
requirements:
|
|
52
|
-
- - "
|
|
65
|
+
- - ">="
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: 2.16.0
|
|
68
|
+
- !ruby/object:Gem::Dependency
|
|
69
|
+
name: logger
|
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - ">="
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: 1.7.0
|
|
75
|
+
type: :runtime
|
|
76
|
+
prerelease: false
|
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - ">="
|
|
53
80
|
- !ruby/object:Gem::Version
|
|
54
|
-
version:
|
|
81
|
+
version: 1.7.0
|
|
55
82
|
description: Simple, efficient background processing for Ruby.
|
|
56
83
|
email:
|
|
57
|
-
-
|
|
84
|
+
- info@contribsys.com
|
|
58
85
|
executables:
|
|
86
|
+
- kiq
|
|
59
87
|
- sidekiq
|
|
60
88
|
- sidekiqmon
|
|
61
89
|
extensions: []
|
|
62
90
|
extra_rdoc_files: []
|
|
63
91
|
files:
|
|
64
92
|
- Changes.md
|
|
65
|
-
- LICENSE
|
|
93
|
+
- LICENSE.txt
|
|
66
94
|
- README.md
|
|
95
|
+
- bin/kiq
|
|
96
|
+
- bin/lint-herb
|
|
97
|
+
- bin/multi_queue_bench
|
|
67
98
|
- bin/sidekiq
|
|
68
99
|
- bin/sidekiqload
|
|
69
100
|
- bin/sidekiqmon
|
|
70
|
-
-
|
|
71
|
-
- lib/
|
|
72
|
-
- lib/generators/sidekiq/
|
|
73
|
-
- lib/generators/sidekiq/
|
|
101
|
+
- bin/webload
|
|
102
|
+
- lib/active_job/queue_adapters/sidekiq_adapter.rb
|
|
103
|
+
- lib/generators/sidekiq/job_generator.rb
|
|
104
|
+
- lib/generators/sidekiq/templates/job.rb.erb
|
|
105
|
+
- lib/generators/sidekiq/templates/job_spec.rb.erb
|
|
106
|
+
- lib/generators/sidekiq/templates/job_test.rb.erb
|
|
74
107
|
- lib/sidekiq.rb
|
|
75
108
|
- lib/sidekiq/api.rb
|
|
109
|
+
- lib/sidekiq/capsule.rb
|
|
76
110
|
- lib/sidekiq/cli.rb
|
|
77
111
|
- lib/sidekiq/client.rb
|
|
78
|
-
- lib/sidekiq/
|
|
79
|
-
- lib/sidekiq/
|
|
80
|
-
- lib/sidekiq/
|
|
81
|
-
- lib/sidekiq/
|
|
82
|
-
- lib/sidekiq/extensions/class_methods.rb
|
|
83
|
-
- lib/sidekiq/extensions/generic_proxy.rb
|
|
112
|
+
- lib/sidekiq/component.rb
|
|
113
|
+
- lib/sidekiq/config.rb
|
|
114
|
+
- lib/sidekiq/deploy.rb
|
|
115
|
+
- lib/sidekiq/embedded.rb
|
|
84
116
|
- lib/sidekiq/fetch.rb
|
|
117
|
+
- lib/sidekiq/iterable_job.rb
|
|
85
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
|
|
86
124
|
- lib/sidekiq/job_logger.rb
|
|
87
125
|
- lib/sidekiq/job_retry.rb
|
|
126
|
+
- lib/sidekiq/job_util.rb
|
|
88
127
|
- lib/sidekiq/launcher.rb
|
|
128
|
+
- lib/sidekiq/loader.rb
|
|
89
129
|
- lib/sidekiq/logger.rb
|
|
90
130
|
- lib/sidekiq/manager.rb
|
|
131
|
+
- lib/sidekiq/metrics/query.rb
|
|
132
|
+
- lib/sidekiq/metrics/shared.rb
|
|
133
|
+
- lib/sidekiq/metrics/tracking.rb
|
|
91
134
|
- lib/sidekiq/middleware/chain.rb
|
|
135
|
+
- lib/sidekiq/middleware/current_attributes.rb
|
|
92
136
|
- lib/sidekiq/middleware/i18n.rb
|
|
137
|
+
- lib/sidekiq/middleware/modules.rb
|
|
93
138
|
- lib/sidekiq/monitor.rb
|
|
94
139
|
- lib/sidekiq/paginator.rb
|
|
95
140
|
- lib/sidekiq/processor.rb
|
|
141
|
+
- lib/sidekiq/profiler.rb
|
|
96
142
|
- lib/sidekiq/rails.rb
|
|
143
|
+
- lib/sidekiq/redis_client_adapter.rb
|
|
97
144
|
- lib/sidekiq/redis_connection.rb
|
|
145
|
+
- lib/sidekiq/ring_buffer.rb
|
|
98
146
|
- lib/sidekiq/scheduled.rb
|
|
99
147
|
- lib/sidekiq/sd_notify.rb
|
|
100
148
|
- lib/sidekiq/systemd.rb
|
|
149
|
+
- lib/sidekiq/test_api.rb
|
|
101
150
|
- lib/sidekiq/testing.rb
|
|
102
151
|
- lib/sidekiq/testing/inline.rb
|
|
103
|
-
- lib/sidekiq/
|
|
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
|
|
104
166
|
- lib/sidekiq/version.rb
|
|
105
167
|
- lib/sidekiq/web.rb
|
|
106
168
|
- lib/sidekiq/web/action.rb
|
|
107
169
|
- lib/sidekiq/web/application.rb
|
|
108
|
-
- lib/sidekiq/web/
|
|
170
|
+
- lib/sidekiq/web/config.rb
|
|
109
171
|
- lib/sidekiq/web/helpers.rb
|
|
110
172
|
- lib/sidekiq/web/router.rb
|
|
111
|
-
- lib/sidekiq/
|
|
173
|
+
- lib/sidekiq/worker_compatibility_alias.rb
|
|
112
174
|
- sidekiq.gemspec
|
|
113
175
|
- web/assets/images/apple-touch-icon.png
|
|
114
176
|
- web/assets/images/favicon.ico
|
|
115
177
|
- web/assets/images/logo.png
|
|
116
178
|
- web/assets/images/status.png
|
|
117
179
|
- web/assets/javascripts/application.js
|
|
180
|
+
- web/assets/javascripts/base-charts.js
|
|
181
|
+
- web/assets/javascripts/chart.min.js
|
|
182
|
+
- web/assets/javascripts/chartjs-adapter-date-fns.min.js
|
|
183
|
+
- web/assets/javascripts/chartjs-plugin-annotation.min.js
|
|
184
|
+
- web/assets/javascripts/dashboard-charts.js
|
|
118
185
|
- web/assets/javascripts/dashboard.js
|
|
119
|
-
- web/assets/
|
|
120
|
-
- web/assets/stylesheets/
|
|
121
|
-
- web/assets/stylesheets/application.css
|
|
122
|
-
- web/assets/stylesheets/bootstrap-rtl.min.css
|
|
123
|
-
- web/assets/stylesheets/bootstrap.css
|
|
186
|
+
- web/assets/javascripts/metrics.js
|
|
187
|
+
- web/assets/stylesheets/style.css
|
|
124
188
|
- web/locales/ar.yml
|
|
125
189
|
- web/locales/cs.yml
|
|
126
190
|
- web/locales/da.yml
|
|
@@ -130,6 +194,7 @@ files:
|
|
|
130
194
|
- web/locales/es.yml
|
|
131
195
|
- web/locales/fa.yml
|
|
132
196
|
- web/locales/fr.yml
|
|
197
|
+
- web/locales/gd.yml
|
|
133
198
|
- web/locales/he.yml
|
|
134
199
|
- web/locales/hi.yml
|
|
135
200
|
- web/locales/it.yml
|
|
@@ -139,44 +204,49 @@ files:
|
|
|
139
204
|
- web/locales/nb.yml
|
|
140
205
|
- web/locales/nl.yml
|
|
141
206
|
- web/locales/pl.yml
|
|
142
|
-
- web/locales/pt-
|
|
207
|
+
- web/locales/pt-BR.yml
|
|
143
208
|
- web/locales/pt.yml
|
|
144
209
|
- web/locales/ru.yml
|
|
145
210
|
- web/locales/sv.yml
|
|
146
211
|
- web/locales/ta.yml
|
|
212
|
+
- web/locales/tr.yml
|
|
147
213
|
- web/locales/uk.yml
|
|
148
214
|
- web/locales/ur.yml
|
|
149
215
|
- web/locales/vi.yml
|
|
150
|
-
- web/locales/zh-
|
|
151
|
-
- web/locales/zh-
|
|
152
|
-
- web/views/_footer.erb
|
|
153
|
-
- web/views/_job_info.erb
|
|
154
|
-
- web/views/
|
|
155
|
-
- web/views/
|
|
156
|
-
- web/views/
|
|
157
|
-
- web/views/
|
|
158
|
-
- web/views/_summary.erb
|
|
159
|
-
- web/views/busy.erb
|
|
160
|
-
- web/views/dashboard.erb
|
|
161
|
-
- web/views/dead.erb
|
|
162
|
-
- web/views/
|
|
163
|
-
- web/views/
|
|
164
|
-
- web/views/
|
|
165
|
-
- web/views/
|
|
166
|
-
- web/views/
|
|
167
|
-
- web/views/
|
|
168
|
-
- web/views/
|
|
169
|
-
- 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
|
|
170
240
|
homepage: https://sidekiq.org
|
|
171
241
|
licenses:
|
|
172
242
|
- LGPL-3.0
|
|
173
243
|
metadata:
|
|
174
244
|
homepage_uri: https://sidekiq.org
|
|
175
|
-
bug_tracker_uri: https://github.com/
|
|
176
|
-
documentation_uri: https://github.com/
|
|
177
|
-
changelog_uri: https://github.com/
|
|
178
|
-
source_code_uri: https://github.com/
|
|
179
|
-
|
|
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'
|
|
180
250
|
rdoc_options: []
|
|
181
251
|
require_paths:
|
|
182
252
|
- lib
|
|
@@ -184,15 +254,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
184
254
|
requirements:
|
|
185
255
|
- - ">="
|
|
186
256
|
- !ruby/object:Gem::Version
|
|
187
|
-
version: 2.
|
|
257
|
+
version: 3.2.0
|
|
188
258
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
189
259
|
requirements:
|
|
190
260
|
- - ">="
|
|
191
261
|
- !ruby/object:Gem::Version
|
|
192
262
|
version: '0'
|
|
193
263
|
requirements: []
|
|
194
|
-
rubygems_version:
|
|
195
|
-
signing_key:
|
|
264
|
+
rubygems_version: 4.0.6
|
|
196
265
|
specification_version: 4
|
|
197
266
|
summary: Simple, efficient background processing for Ruby
|
|
198
267
|
test_files: []
|
data/LICENSE
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
Copyright (c) Contributed Systems LLC
|
|
2
|
-
|
|
3
|
-
Sidekiq is an Open Source project licensed under the terms of
|
|
4
|
-
the LGPLv3 license. Please see <http://www.gnu.org/licenses/lgpl-3.0.html>
|
|
5
|
-
for license text.
|
|
6
|
-
|
|
7
|
-
Sidekiq Pro has a commercial-friendly license allowing private forks
|
|
8
|
-
and modifications of Sidekiq. Please see https://sidekiq.org/products/pro.html for
|
|
9
|
-
more detail. You can find the commercial license terms in COMM-LICENSE.txt.
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
require "rails/generators/named_base"
|
|
2
|
-
|
|
3
|
-
module Sidekiq
|
|
4
|
-
module Generators # :nodoc:
|
|
5
|
-
class WorkerGenerator < ::Rails::Generators::NamedBase # :nodoc:
|
|
6
|
-
desc "This generator creates a Sidekiq Worker in app/workers and a corresponding test"
|
|
7
|
-
|
|
8
|
-
check_class_collision suffix: "Worker"
|
|
9
|
-
|
|
10
|
-
def self.default_generator_root
|
|
11
|
-
File.dirname(__FILE__)
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def create_worker_file
|
|
15
|
-
template "worker.rb.erb", File.join("app/workers", class_path, "#{file_name}_worker.rb")
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def create_test_file
|
|
19
|
-
return unless test_framework
|
|
20
|
-
|
|
21
|
-
if test_framework == :rspec
|
|
22
|
-
create_worker_spec
|
|
23
|
-
else
|
|
24
|
-
create_worker_test
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
private
|
|
29
|
-
|
|
30
|
-
def create_worker_spec
|
|
31
|
-
template_file = File.join(
|
|
32
|
-
"spec/workers",
|
|
33
|
-
class_path,
|
|
34
|
-
"#{file_name}_worker_spec.rb"
|
|
35
|
-
)
|
|
36
|
-
template "worker_spec.rb.erb", template_file
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def create_worker_test
|
|
40
|
-
template_file = File.join(
|
|
41
|
-
"test/workers",
|
|
42
|
-
class_path,
|
|
43
|
-
"#{file_name}_worker_test.rb"
|
|
44
|
-
)
|
|
45
|
-
template "worker_test.rb.erb", template_file
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
def file_name
|
|
49
|
-
@_file_name ||= super.sub(/_?worker\z/i, "")
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
def test_framework
|
|
53
|
-
::Rails.application.config.generators.options[:rails][:test_framework]
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
end
|
data/lib/sidekiq/delay.rb
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Sidekiq
|
|
4
|
-
module Extensions
|
|
5
|
-
def self.enable_delay!
|
|
6
|
-
if defined?(::ActiveSupport)
|
|
7
|
-
require "sidekiq/extensions/active_record"
|
|
8
|
-
require "sidekiq/extensions/action_mailer"
|
|
9
|
-
|
|
10
|
-
# Need to patch Psych so it can autoload classes whose names are serialized
|
|
11
|
-
# in the delayed YAML.
|
|
12
|
-
Psych::Visitors::ToRuby.prepend(Sidekiq::Extensions::PsychAutoload)
|
|
13
|
-
|
|
14
|
-
ActiveSupport.on_load(:active_record) do
|
|
15
|
-
include Sidekiq::Extensions::ActiveRecord
|
|
16
|
-
end
|
|
17
|
-
ActiveSupport.on_load(:action_mailer) do
|
|
18
|
-
extend Sidekiq::Extensions::ActionMailer
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
require "sidekiq/extensions/class_methods"
|
|
23
|
-
Module.__send__(:include, Sidekiq::Extensions::Klass)
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
module PsychAutoload
|
|
27
|
-
def resolve_class(klass_name)
|
|
28
|
-
return nil if !klass_name || klass_name.empty?
|
|
29
|
-
# constantize
|
|
30
|
-
names = klass_name.split("::")
|
|
31
|
-
names.shift if names.empty? || names.first.empty?
|
|
32
|
-
|
|
33
|
-
names.inject(Object) do |constant, name|
|
|
34
|
-
constant.const_defined?(name) ? constant.const_get(name) : constant.const_missing(name)
|
|
35
|
-
end
|
|
36
|
-
rescue NameError
|
|
37
|
-
super
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "sidekiq"
|
|
4
|
-
|
|
5
|
-
module Sidekiq
|
|
6
|
-
module ExceptionHandler
|
|
7
|
-
class Logger
|
|
8
|
-
def call(ex, ctx)
|
|
9
|
-
Sidekiq.logger.warn(Sidekiq.dump_json(ctx)) unless ctx.empty?
|
|
10
|
-
Sidekiq.logger.warn("#{ex.class.name}: #{ex.message}")
|
|
11
|
-
Sidekiq.logger.warn(ex.backtrace.join("\n")) unless ex.backtrace.nil?
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
Sidekiq.error_handlers << Sidekiq::ExceptionHandler::Logger.new
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def handle_exception(ex, ctx = {})
|
|
18
|
-
Sidekiq.error_handlers.each do |handler|
|
|
19
|
-
handler.call(ex, ctx)
|
|
20
|
-
rescue => ex
|
|
21
|
-
Sidekiq.logger.error "!!! ERROR HANDLER THREW AN ERROR !!!"
|
|
22
|
-
Sidekiq.logger.error ex
|
|
23
|
-
Sidekiq.logger.error ex.backtrace.join("\n") unless ex.backtrace.nil?
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
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
|
|
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
|