sidekiq-cron 1.2.0 → 1.7.0
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 +5 -5
- data/CHANGELOG.md +122 -0
- data/Gemfile +1 -30
- data/README.md +151 -121
- data/Rakefile +3 -42
- data/lib/sidekiq/cron/job.rb +139 -104
- data/lib/sidekiq/cron/launcher.rb +7 -9
- data/lib/sidekiq/cron/locales/en.yml +2 -0
- data/lib/sidekiq/cron/locales/pt.yml +22 -0
- data/lib/sidekiq/cron/poller.rb +18 -9
- data/lib/sidekiq/cron/schedule_loader.rb +22 -0
- data/lib/sidekiq/cron/support.rb +0 -1
- data/lib/sidekiq/cron/version.rb +7 -0
- data/lib/sidekiq/cron/views/cron.erb +19 -13
- data/lib/sidekiq/cron/views/cron_show.erb +8 -8
- data/lib/sidekiq/cron/web.rb +1 -7
- data/lib/sidekiq/cron/web_extension.rb +8 -21
- data/lib/sidekiq/cron.rb +1 -0
- data/lib/sidekiq/options.rb +18 -0
- data/sidekiq-cron.gemspec +25 -115
- data/test/integration/performance_test.rb +4 -5
- data/test/test_helper.rb +11 -23
- data/test/unit/fixtures/schedule_array.yml +13 -0
- data/test/unit/fixtures/schedule_hash.yml +12 -0
- data/test/unit/fixtures/schedule_string.yml +1 -0
- data/test/unit/job_test.rb +227 -23
- data/test/unit/poller_test.rb +7 -9
- data/test/unit/schedule_loader_test.rb +45 -0
- data/test/unit/web_extension_test.rb +40 -40
- metadata +56 -197
- data/.document +0 -5
- data/.travis.yml +0 -18
- data/Changes.md +0 -82
- data/Dockerfile +0 -32
- data/VERSION +0 -1
- data/config.ru +0 -14
- data/docker-compose.yml +0 -23
- data/examples/web-cron-ui.png +0 -0
- data/lib/sidekiq/cron/views/cron.slim +0 -71
- data/lib/sidekiq/cron/views/cron_show.slim +0 -61
metadata
CHANGED
@@ -1,282 +1,143 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sidekiq-cron
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ondrej Bartas
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-07-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: sidekiq
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 4.2.1
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: 4.2.1
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: fugit
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
30
16
|
requirements:
|
31
17
|
- - "~>"
|
32
18
|
- !ruby/object:Gem::Version
|
33
|
-
version: '1
|
19
|
+
version: '1'
|
34
20
|
type: :runtime
|
35
21
|
prerelease: false
|
36
22
|
version_requirements: !ruby/object:Gem::Requirement
|
37
23
|
requirements:
|
38
24
|
- - "~>"
|
39
25
|
- !ruby/object:Gem::Version
|
40
|
-
version: '1
|
26
|
+
version: '1'
|
41
27
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
28
|
+
name: sidekiq
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
44
30
|
requirements:
|
45
31
|
- - ">="
|
46
32
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
48
|
-
type: :
|
33
|
+
version: 4.2.1
|
34
|
+
type: :runtime
|
49
35
|
prerelease: false
|
50
36
|
version_requirements: !ruby/object:Gem::Requirement
|
51
37
|
requirements:
|
52
38
|
- - ">="
|
53
39
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
40
|
+
version: 4.2.1
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
42
|
+
name: minitest
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
58
44
|
requirements:
|
59
|
-
- - "
|
45
|
+
- - "~>"
|
60
46
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
47
|
+
version: '5.15'
|
62
48
|
type: :development
|
63
49
|
prerelease: false
|
64
50
|
version_requirements: !ruby/object:Gem::Requirement
|
65
51
|
requirements:
|
66
|
-
- - "
|
52
|
+
- - "~>"
|
67
53
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
54
|
+
version: '5.15'
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
56
|
+
name: mocha
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
72
58
|
requirements:
|
73
|
-
- - "
|
59
|
+
- - "~>"
|
74
60
|
- !ruby/object:Gem::Version
|
75
|
-
version: 1.
|
61
|
+
version: '1.14'
|
76
62
|
type: :development
|
77
63
|
prerelease: false
|
78
64
|
version_requirements: !ruby/object:Gem::Requirement
|
79
65
|
requirements:
|
80
|
-
- - "
|
66
|
+
- - "~>"
|
81
67
|
- !ruby/object:Gem::Version
|
82
|
-
version: 1.
|
68
|
+
version: '1.14'
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
70
|
+
name: redis-namespace
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
86
72
|
requirements:
|
87
|
-
- - "
|
73
|
+
- - "~>"
|
88
74
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
75
|
+
version: '1.8'
|
90
76
|
type: :development
|
91
77
|
prerelease: false
|
92
78
|
version_requirements: !ruby/object:Gem::Requirement
|
93
79
|
requirements:
|
94
|
-
- - "
|
80
|
+
- - "~>"
|
95
81
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
82
|
+
version: '1.8'
|
97
83
|
- !ruby/object:Gem::Dependency
|
98
84
|
name: rack
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|
100
86
|
requirements:
|
101
|
-
- - "
|
87
|
+
- - "~>"
|
102
88
|
- !ruby/object:Gem::Version
|
103
|
-
version: '
|
89
|
+
version: '2.2'
|
104
90
|
type: :development
|
105
91
|
prerelease: false
|
106
92
|
version_requirements: !ruby/object:Gem::Requirement
|
107
93
|
requirements:
|
108
|
-
- - "
|
94
|
+
- - "~>"
|
109
95
|
- !ruby/object:Gem::Version
|
110
|
-
version: '
|
96
|
+
version: '2.2'
|
111
97
|
- !ruby/object:Gem::Dependency
|
112
98
|
name: rack-test
|
113
99
|
requirement: !ruby/object:Gem::Requirement
|
114
100
|
requirements:
|
115
|
-
- - "
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - ">="
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '0'
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: jeweler
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - ">="
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '0'
|
132
|
-
type: :development
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - ">="
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '0'
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: minitest
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - ">="
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: '0'
|
146
|
-
type: :development
|
147
|
-
prerelease: false
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - ">="
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '0'
|
153
|
-
- !ruby/object:Gem::Dependency
|
154
|
-
name: test-unit
|
155
|
-
requirement: !ruby/object:Gem::Requirement
|
156
|
-
requirements:
|
157
|
-
- - ">="
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
version: '0'
|
160
|
-
type: :development
|
161
|
-
prerelease: false
|
162
|
-
version_requirements: !ruby/object:Gem::Requirement
|
163
|
-
requirements:
|
164
|
-
- - ">="
|
165
|
-
- !ruby/object:Gem::Version
|
166
|
-
version: '0'
|
167
|
-
- !ruby/object:Gem::Dependency
|
168
|
-
name: sdoc
|
169
|
-
requirement: !ruby/object:Gem::Requirement
|
170
|
-
requirements:
|
171
|
-
- - ">="
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
version: '0'
|
174
|
-
type: :development
|
175
|
-
prerelease: false
|
176
|
-
version_requirements: !ruby/object:Gem::Requirement
|
177
|
-
requirements:
|
178
|
-
- - ">="
|
179
|
-
- !ruby/object:Gem::Version
|
180
|
-
version: '0'
|
181
|
-
- !ruby/object:Gem::Dependency
|
182
|
-
name: slim
|
183
|
-
requirement: !ruby/object:Gem::Requirement
|
184
|
-
requirements:
|
185
|
-
- - ">="
|
186
|
-
- !ruby/object:Gem::Version
|
187
|
-
version: '0'
|
188
|
-
type: :development
|
189
|
-
prerelease: false
|
190
|
-
version_requirements: !ruby/object:Gem::Requirement
|
191
|
-
requirements:
|
192
|
-
- - ">="
|
193
|
-
- !ruby/object:Gem::Version
|
194
|
-
version: '0'
|
195
|
-
- !ruby/object:Gem::Dependency
|
196
|
-
name: sinatra
|
197
|
-
requirement: !ruby/object:Gem::Requirement
|
198
|
-
requirements:
|
199
|
-
- - ">="
|
200
|
-
- !ruby/object:Gem::Version
|
201
|
-
version: '0'
|
202
|
-
type: :development
|
203
|
-
prerelease: false
|
204
|
-
version_requirements: !ruby/object:Gem::Requirement
|
205
|
-
requirements:
|
206
|
-
- - ">="
|
207
|
-
- !ruby/object:Gem::Version
|
208
|
-
version: '0'
|
209
|
-
- !ruby/object:Gem::Dependency
|
210
|
-
name: mocha
|
211
|
-
requirement: !ruby/object:Gem::Requirement
|
212
|
-
requirements:
|
213
|
-
- - ">="
|
214
|
-
- !ruby/object:Gem::Version
|
215
|
-
version: '0'
|
216
|
-
type: :development
|
217
|
-
prerelease: false
|
218
|
-
version_requirements: !ruby/object:Gem::Requirement
|
219
|
-
requirements:
|
220
|
-
- - ">="
|
221
|
-
- !ruby/object:Gem::Version
|
222
|
-
version: '0'
|
223
|
-
- !ruby/object:Gem::Dependency
|
224
|
-
name: coveralls
|
225
|
-
requirement: !ruby/object:Gem::Requirement
|
226
|
-
requirements:
|
227
|
-
- - ">="
|
228
|
-
- !ruby/object:Gem::Version
|
229
|
-
version: '0'
|
230
|
-
type: :development
|
231
|
-
prerelease: false
|
232
|
-
version_requirements: !ruby/object:Gem::Requirement
|
233
|
-
requirements:
|
234
|
-
- - ">="
|
235
|
-
- !ruby/object:Gem::Version
|
236
|
-
version: '0'
|
237
|
-
- !ruby/object:Gem::Dependency
|
238
|
-
name: shotgun
|
239
|
-
requirement: !ruby/object:Gem::Requirement
|
240
|
-
requirements:
|
241
|
-
- - ">="
|
101
|
+
- - "~>"
|
242
102
|
- !ruby/object:Gem::Version
|
243
|
-
version: '
|
103
|
+
version: '1.1'
|
244
104
|
type: :development
|
245
105
|
prerelease: false
|
246
106
|
version_requirements: !ruby/object:Gem::Requirement
|
247
107
|
requirements:
|
248
|
-
- - "
|
108
|
+
- - "~>"
|
249
109
|
- !ruby/object:Gem::Version
|
250
|
-
version: '
|
110
|
+
version: '1.1'
|
251
111
|
- !ruby/object:Gem::Dependency
|
252
|
-
name:
|
112
|
+
name: rake
|
253
113
|
requirement: !ruby/object:Gem::Requirement
|
254
114
|
requirements:
|
255
|
-
- - "
|
115
|
+
- - "~>"
|
256
116
|
- !ruby/object:Gem::Version
|
257
|
-
version: '0'
|
117
|
+
version: '13.0'
|
258
118
|
type: :development
|
259
119
|
prerelease: false
|
260
120
|
version_requirements: !ruby/object:Gem::Requirement
|
261
121
|
requirements:
|
262
|
-
- - "
|
122
|
+
- - "~>"
|
263
123
|
- !ruby/object:Gem::Version
|
264
|
-
version: '0'
|
124
|
+
version: '13.0'
|
265
125
|
- !ruby/object:Gem::Dependency
|
266
|
-
name:
|
126
|
+
name: simplecov
|
267
127
|
requirement: !ruby/object:Gem::Requirement
|
268
128
|
requirements:
|
269
|
-
- - "
|
129
|
+
- - "~>"
|
270
130
|
- !ruby/object:Gem::Version
|
271
|
-
version: '0'
|
131
|
+
version: '0.21'
|
272
132
|
type: :development
|
273
133
|
prerelease: false
|
274
134
|
version_requirements: !ruby/object:Gem::Requirement
|
275
135
|
requirements:
|
276
|
-
- - "
|
136
|
+
- - "~>"
|
277
137
|
- !ruby/object:Gem::Version
|
278
|
-
version: '0'
|
279
|
-
description: Enables to set jobs to be run in specified time (using CRON notation
|
138
|
+
version: '0.21'
|
139
|
+
description: Enables to set jobs to be run in specified time (using CRON notation
|
140
|
+
or natural language)
|
280
141
|
email: ondrej@bartas.cz
|
281
142
|
executables: []
|
282
143
|
extensions: []
|
@@ -284,18 +145,11 @@ extra_rdoc_files:
|
|
284
145
|
- LICENSE.txt
|
285
146
|
- README.md
|
286
147
|
files:
|
287
|
-
-
|
288
|
-
- ".travis.yml"
|
289
|
-
- Changes.md
|
290
|
-
- Dockerfile
|
148
|
+
- CHANGELOG.md
|
291
149
|
- Gemfile
|
292
150
|
- LICENSE.txt
|
293
151
|
- README.md
|
294
152
|
- Rakefile
|
295
|
-
- VERSION
|
296
|
-
- config.ru
|
297
|
-
- docker-compose.yml
|
298
|
-
- examples/web-cron-ui.png
|
299
153
|
- lib/sidekiq-cron.rb
|
300
154
|
- lib/sidekiq/cron.rb
|
301
155
|
- lib/sidekiq/cron/job.rb
|
@@ -303,23 +157,29 @@ files:
|
|
303
157
|
- lib/sidekiq/cron/locales/de.yml
|
304
158
|
- lib/sidekiq/cron/locales/en.yml
|
305
159
|
- lib/sidekiq/cron/locales/ja.yml
|
160
|
+
- lib/sidekiq/cron/locales/pt.yml
|
306
161
|
- lib/sidekiq/cron/locales/ru.yml
|
307
162
|
- lib/sidekiq/cron/locales/zh-CN.yml
|
308
163
|
- lib/sidekiq/cron/poller.rb
|
164
|
+
- lib/sidekiq/cron/schedule_loader.rb
|
309
165
|
- lib/sidekiq/cron/support.rb
|
166
|
+
- lib/sidekiq/cron/version.rb
|
310
167
|
- lib/sidekiq/cron/views/cron.erb
|
311
|
-
- lib/sidekiq/cron/views/cron.slim
|
312
168
|
- lib/sidekiq/cron/views/cron_show.erb
|
313
|
-
- lib/sidekiq/cron/views/cron_show.slim
|
314
169
|
- lib/sidekiq/cron/web.rb
|
315
170
|
- lib/sidekiq/cron/web_extension.rb
|
171
|
+
- lib/sidekiq/options.rb
|
316
172
|
- sidekiq-cron.gemspec
|
317
173
|
- test/integration/performance_test.rb
|
318
174
|
- test/test_helper.rb
|
175
|
+
- test/unit/fixtures/schedule_array.yml
|
176
|
+
- test/unit/fixtures/schedule_hash.yml
|
177
|
+
- test/unit/fixtures/schedule_string.yml
|
319
178
|
- test/unit/job_test.rb
|
320
179
|
- test/unit/poller_test.rb
|
180
|
+
- test/unit/schedule_loader_test.rb
|
321
181
|
- test/unit/web_extension_test.rb
|
322
|
-
homepage:
|
182
|
+
homepage: https://github.com/ondrejbartas/sidekiq-cron
|
323
183
|
licenses:
|
324
184
|
- MIT
|
325
185
|
metadata: {}
|
@@ -331,16 +191,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
331
191
|
requirements:
|
332
192
|
- - ">="
|
333
193
|
- !ruby/object:Gem::Version
|
334
|
-
version: '
|
194
|
+
version: '2.6'
|
335
195
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
336
196
|
requirements:
|
337
197
|
- - ">="
|
338
198
|
- !ruby/object:Gem::Version
|
339
199
|
version: '0'
|
340
200
|
requirements: []
|
341
|
-
|
342
|
-
rubygems_version: 2.5.2.3
|
201
|
+
rubygems_version: 3.1.4
|
343
202
|
signing_key:
|
344
203
|
specification_version: 4
|
345
|
-
summary:
|
204
|
+
summary: Scheduler/Cron for Sidekiq jobs
|
346
205
|
test_files: []
|
data/.document
DELETED
data/.travis.yml
DELETED
data/Changes.md
DELETED
@@ -1,82 +0,0 @@
|
|
1
|
-
v 1.2.0
|
2
|
-
-------
|
3
|
-
|
4
|
-
- updated readme
|
5
|
-
- fix problem with Sidekiq::Launcher and requiring it when not needed
|
6
|
-
- better patching of Sidekiq::Launcher
|
7
|
-
- fixed Dockerfile
|
8
|
-
|
9
|
-
v 1.1.0
|
10
|
-
-------
|
11
|
-
|
12
|
-
- updated readme
|
13
|
-
- fix unit tests - changed argument error when getting invalid cron format
|
14
|
-
- when fallbacking old job enqueued time use `Time.parse` šwithout format (so ruby can decide best method to parse it)
|
15
|
-
- add option `date_as_argument` which will add to your job arguments on last place `Time.now.to_f` when it was eneuqued
|
16
|
-
- add option `description` which will allow you to add notes to your jobs so in web view you can see it
|
17
|
-
- fixed translations
|
18
|
-
|
19
|
-
v 1.0.4
|
20
|
-
-------
|
21
|
-
|
22
|
-
- fix problem with upgrading to 1.0.x - parsing last enqued time didn't count with old time format stored in redis
|
23
|
-
|
24
|
-
v 1.0.0
|
25
|
-
-------
|
26
|
-
|
27
|
-
- use [fugit](https://github.com/floraison/fugit) instead of [rufus-scheduler](https://github.com/jmettraux/rufus-scheduler) - API of cron didn't change (rufus scheduler is using fugit)
|
28
|
-
- better working with Timezones
|
29
|
-
- translations for JA, zh-CN
|
30
|
-
- cron without timezone are considered as UTC, to add Timezone to cron use format `* * * * * Europe/Berlin`
|
31
|
-
- be aware that this release can change when your jobs are enqueued (for me it didn't change but it is in one project, in other it can shift by different timezone setup)
|
32
|
-
|
33
|
-
v 0.6.0
|
34
|
-
-------
|
35
|
-
|
36
|
-
- set poller to check jobs every 30s by default (possible to override by `Sidekiq.options[:poll_interval] = 10`)
|
37
|
-
- add group actions (enqueue, enable, disable, delete) all in web view
|
38
|
-
- fix poller to enqueu all jobs in poll start time
|
39
|
-
- add performance test for enqueue of jobs (10 000 jobs in less than 19s)
|
40
|
-
- fix problem with default queue
|
41
|
-
- remove redis-namespace from dependencies
|
42
|
-
- update ruby versions in travis
|
43
|
-
|
44
|
-
v 0.5.0
|
45
|
-
-------
|
46
|
-
- add docker support
|
47
|
-
- all crons are now evaluated in UTC
|
48
|
-
- fix rufus scheduler & timezones problems
|
49
|
-
- add support for sidekiq 4.2.1
|
50
|
-
- fix readme
|
51
|
-
- add Russian locale
|
52
|
-
- user Rack.env in tests
|
53
|
-
- faster enque of jobs
|
54
|
-
- permit to use ActiveJob::Base.queue_name_delimiter
|
55
|
-
- fix problem with multiple times enque #84
|
56
|
-
- fix problem with enque of unknown class
|
57
|
-
|
58
|
-
v 0.4.0
|
59
|
-
-------
|
60
|
-
|
61
|
-
- enable to work with sidekiq >= 4.0.0
|
62
|
-
- fix readme
|
63
|
-
|
64
|
-
v 0.3.1
|
65
|
-
-------
|
66
|
-
|
67
|
-
- add CSRF tags to forms so it will work with sidekiq >= 3.4.2
|
68
|
-
- remove tilt dependency
|
69
|
-
|
70
|
-
v 0.3.0
|
71
|
-
-------
|
72
|
-
|
73
|
-
- suport for Active Job
|
74
|
-
- sidekiq cron web ui needs to be loaded by: require 'sidekiq/cron/web'
|
75
|
-
- add load_from_hash! and load_from_array! which cleanup jobs before adding new ones
|
76
|
-
|
77
|
-
v 0.1.1
|
78
|
-
-------
|
79
|
-
|
80
|
-
- add Web fontend with enabled/disable job, unqueue now, delete job
|
81
|
-
- add cron poller - enqueu cro jobs
|
82
|
-
- add cron job - save all needed data to redis
|
data/Dockerfile
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
FROM ruby:2.4
|
2
|
-
MAINTAINER Joao Serra <joaopfserra@gmail.com>
|
3
|
-
|
4
|
-
RUN apt-get update && \
|
5
|
-
apt-get install -y --force-yes \
|
6
|
-
curl \
|
7
|
-
git \
|
8
|
-
wget \
|
9
|
-
libpq-dev && \
|
10
|
-
apt-get autoremove -y --force-yes && \
|
11
|
-
apt-get clean && \
|
12
|
-
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
13
|
-
|
14
|
-
ENV DOCKERIZE_VERSION v0.2.0
|
15
|
-
RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \
|
16
|
-
&& tar -C /usr/local/bin -xzvf dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz
|
17
|
-
|
18
|
-
RUN gem install bundler
|
19
|
-
|
20
|
-
ENV APP_HOME /sidekiq-cron
|
21
|
-
RUN mkdir $APP_HOME
|
22
|
-
WORKDIR $APP_HOME
|
23
|
-
|
24
|
-
ADD Gemfile* $APP_HOME/
|
25
|
-
|
26
|
-
ENV BUNDLE_GEMFILE=$APP_HOME/Gemfile \
|
27
|
-
BUNDLE_JOBS=2 \
|
28
|
-
BUNDLE_PATH=/bundle
|
29
|
-
|
30
|
-
RUN bundle install
|
31
|
-
|
32
|
-
ADD . $APP_HOME
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
1.2.0
|
data/config.ru
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
require 'sidekiq'
|
2
|
-
|
3
|
-
Sidekiq.configure_client do |config|
|
4
|
-
config.redis = { :size => 1 }
|
5
|
-
end
|
6
|
-
|
7
|
-
require 'sidekiq/web'
|
8
|
-
|
9
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), 'lib'))
|
10
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
11
|
-
|
12
|
-
require 'sidekiq-cron'
|
13
|
-
|
14
|
-
run Sidekiq::Web
|
data/docker-compose.yml
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
version: '2'
|
2
|
-
services:
|
3
|
-
common:
|
4
|
-
build:
|
5
|
-
context: .
|
6
|
-
image: sidekiq-cron-test
|
7
|
-
environment: &environment
|
8
|
-
- REDIS_URL=redis://redis.test:6379/0
|
9
|
-
dns:
|
10
|
-
- 8.8.8.8
|
11
|
-
- 8.8.4.4
|
12
|
-
redis:
|
13
|
-
image: redis
|
14
|
-
tests:
|
15
|
-
image: sidekiq-cron-test
|
16
|
-
environment: *environment
|
17
|
-
links:
|
18
|
-
- redis:redis.test
|
19
|
-
depends_on:
|
20
|
-
- common
|
21
|
-
command: dockerize -wait tcp://redis.test:6379 -timeout 60s bundle exec rake test
|
22
|
-
volumes:
|
23
|
-
- .:/sidekiq-cron
|
data/examples/web-cron-ui.png
DELETED
Binary file
|
@@ -1,71 +0,0 @@
|
|
1
|
-
header.row
|
2
|
-
.span.col-sm-5.pull-left
|
3
|
-
h3 = t('CronJobs')
|
4
|
-
|
5
|
-
.span.col-sm-7.pull-right style="margin-top: 20px; margin-bottom: 10px;"
|
6
|
-
- if @cron_jobs.size > 0
|
7
|
-
form.pull-right action="#{root_path}cron/__all__/delete" method="post"
|
8
|
-
= csrf_tag if respond_to?(:csrf_tag)
|
9
|
-
input.btn.btn-small.pull-left.btn-danger type="submit" name="enque" value="#{t('DeleteAll')}" data-confirm="#{t('AreYouSureDeleteCronJobs')}"
|
10
|
-
form.pull-right action="#{root_path}cron/__all__/disable" method="post"
|
11
|
-
= csrf_tag if respond_to?(:csrf_tag)
|
12
|
-
input.btn.btn-small.pull-left type="submit" name="enque" value="#{t('DisableAll')}"
|
13
|
-
form.pull-right action="#{root_path}cron/__all__/enable" method="post"
|
14
|
-
= csrf_tag if respond_to?(:csrf_tag)
|
15
|
-
input.btn.btn-small.pull-left type="submit" name="enque" value="#{t('EnableAll')}"
|
16
|
-
form.pull-right action="#{root_path}cron/__all__/enque" method="post"
|
17
|
-
= csrf_tag if respond_to?(:csrf_tag)
|
18
|
-
input.btn.btn-small.pull-left type="submit" name="enque" value="#{t('EnqueueAll')}"
|
19
|
-
|
20
|
-
- if @cron_jobs.size > 0
|
21
|
-
|
22
|
-
table class="table table-hover table-bordered table-striped"
|
23
|
-
thead
|
24
|
-
th = t('Status')
|
25
|
-
th = t('Name')
|
26
|
-
th = t('Cron')
|
27
|
-
th = t('Last enqueued')
|
28
|
-
th width="180px"
|
29
|
-
= t('Actions')
|
30
|
-
|
31
|
-
|
32
|
-
- @cron_jobs.sort{|a,b| a.sort_name <=> b.sort_name }.each_with_index do |job, index|
|
33
|
-
- style = "#{job.status == 'disabled' ? "background: #ecc": ""}"
|
34
|
-
tr
|
35
|
-
td[style="#{style}"]= job.status
|
36
|
-
td[style="#{style}"]
|
37
|
-
a href="#{root_path}cron/#{CGI.escape(job.name).gsub('+', '%20')}"
|
38
|
-
b = job.name
|
39
|
-
hr style="margin:3px;border:0;"
|
40
|
-
small
|
41
|
-
- if job.message and job.message.to_s.size > 100
|
42
|
-
button data-toggle="collapse" data-target=".worker_#{index}" class="btn btn-mini" = t('ShowAll')
|
43
|
-
.toggle[class="worker_#{index}" style="display: inline;"]= job.message[0..100] + "... "
|
44
|
-
.toggle[class="worker_#{index}" style="display: none;"]= job.message
|
45
|
-
- else
|
46
|
-
= job.message
|
47
|
-
|
48
|
-
td[style="#{style}"]
|
49
|
-
b == job.cron.gsub(" ", " ")
|
50
|
-
td[style="#{style}"]== job.last_enqueue_time ? relative_time(job.last_enqueue_time) : "-"
|
51
|
-
td[style="#{style}"]
|
52
|
-
-if job.status == 'enabled'
|
53
|
-
form action="#{root_path}cron/#{CGI.escape(job.name).gsub('+', '%20')}/enque" method="post"
|
54
|
-
= csrf_tag if respond_to?(:csrf_tag)
|
55
|
-
input.btn.btn-small.pull-left type="submit" name="enque" value="#{t('EnqueueNow')}"
|
56
|
-
form action="#{root_path}cron/#{CGI.escape(job.name).gsub('+', '%20')}/disable" method="post"
|
57
|
-
= csrf_tag if respond_to?(:csrf_tag)
|
58
|
-
input.btn.btn-small.pull-left type="submit" name="disable" value="#{t('Disable')}"
|
59
|
-
-else
|
60
|
-
form action="#{root_path}cron/#{CGI.escape(job.name).gsub('+', '%20')}/enque" method="post"
|
61
|
-
= csrf_tag if respond_to?(:csrf_tag)
|
62
|
-
input.btn.btn-small.pull-left type="submit" name="enque" value="#{t('EnqueueNow')}"
|
63
|
-
form action="#{root_path}cron/#{CGI.escape(job.name).gsub('+', '%20')}/enable" method="post"
|
64
|
-
= csrf_tag if respond_to?(:csrf_tag)
|
65
|
-
input.btn.btn-small.pull-left type="submit" name="enable" value="#{t('Enable')}"
|
66
|
-
form action="#{root_path}cron/#{CGI.escape(job.name).gsub('+', '%20')}/delete" method="post"
|
67
|
-
= csrf_tag if respond_to?(:csrf_tag)
|
68
|
-
input.btn.btn-danger.btn-small type="submit" name="delete" value="#{t('Delete')}" data-confirm="#{t('AreYouSureDeleteCronJob', :job => job.name)}"
|
69
|
-
|
70
|
-
- else
|
71
|
-
.alert.alert-success = t('NoCronJobsWereFound')
|