sidekiq-cron 0.6.3 → 1.2.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 +4 -4
- data/.travis.yml +5 -6
- data/Changes.md +32 -0
- data/Dockerfile +1 -1
- data/Gemfile +1 -1
- data/README.md +25 -12
- data/VERSION +1 -1
- data/docker-compose.yml +3 -1
- data/lib/sidekiq/cron/job.rb +82 -32
- data/lib/sidekiq/cron/launcher.rb +34 -40
- data/lib/sidekiq/cron/locales/de.yml +2 -2
- data/lib/sidekiq/cron/locales/en.yml +4 -2
- data/lib/sidekiq/cron/locales/ja.yml +18 -0
- data/lib/sidekiq/cron/locales/ru.yml +2 -2
- data/lib/sidekiq/cron/locales/zh-CN.yml +19 -0
- data/lib/sidekiq/cron/poller.rb +6 -4
- data/lib/sidekiq/cron/views/cron.erb +23 -19
- data/lib/sidekiq/cron/views/cron.slim +17 -15
- data/lib/sidekiq/cron/views/cron_show.erb +88 -0
- data/lib/sidekiq/cron/views/cron_show.slim +61 -0
- data/lib/sidekiq/cron/web_extension.rb +20 -3
- data/sidekiq-cron.gemspec +74 -70
- data/test/integration/performance_test.rb +7 -9
- data/test/test_helper.rb +17 -6
- data/test/unit/job_test.rb +67 -14
- data/test/unit/poller_test.rb +22 -23
- data/test/unit/web_extension_test.rb +22 -3
- metadata +12 -8
data/test/unit/poller_test.rb
CHANGED
@@ -5,9 +5,7 @@ require './test/test_helper'
|
|
5
5
|
describe 'Cron Poller' do
|
6
6
|
before do
|
7
7
|
Sidekiq.redis = REDIS
|
8
|
-
|
9
|
-
conn.flushdb
|
10
|
-
end
|
8
|
+
Redis.current.flushdb
|
11
9
|
|
12
10
|
#clear all previous saved data from redis
|
13
11
|
Sidekiq.redis do |conn|
|
@@ -28,8 +26,8 @@ describe 'Cron Poller' do
|
|
28
26
|
end
|
29
27
|
|
30
28
|
it 'not enqueue any job - new jobs' do
|
31
|
-
now = Time.now.utc
|
32
|
-
enqueued_time = Time.new(now.year, now.month, now.day, now.hour
|
29
|
+
now = Time.now.utc + 3600
|
30
|
+
enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 5, 1)
|
33
31
|
Time.stubs(:now).returns(enqueued_time)
|
34
32
|
#new jobs!
|
35
33
|
Sidekiq::Cron::Job.create(@args)
|
@@ -43,19 +41,20 @@ describe 'Cron Poller' do
|
|
43
41
|
end
|
44
42
|
|
45
43
|
#30 seconds after!
|
46
|
-
enqueued_time = Time.new(now.year, now.month, now.day, now.hour
|
44
|
+
enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 5, 30)
|
47
45
|
Time.stubs(:now).returns(enqueued_time)
|
48
|
-
@poller.enqueue
|
49
46
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
47
|
+
@poller.enqueue
|
48
|
+
|
49
|
+
Sidekiq.redis do |conn|
|
50
|
+
assert_equal 0, conn.llen("queue:default")
|
51
|
+
assert_equal 0, conn.llen("queue:super")
|
52
|
+
end
|
54
53
|
end
|
55
54
|
|
56
55
|
it 'should enqueue only job with cron */2' do
|
57
|
-
now = Time.now.utc
|
58
|
-
enqueued_time = Time.new(now.year, now.month, now.day, now.hour
|
56
|
+
now = Time.now.utc + 3600
|
57
|
+
enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 5, 1)
|
59
58
|
Time.stubs(:now).returns(enqueued_time)
|
60
59
|
#new jobs!
|
61
60
|
Sidekiq::Cron::Job.create(@args)
|
@@ -68,7 +67,7 @@ describe 'Cron Poller' do
|
|
68
67
|
assert_equal 0, conn.llen("queue:super")
|
69
68
|
end
|
70
69
|
|
71
|
-
enqueued_time = Time.new(now.year, now.month, now.day, now.hour
|
70
|
+
enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 6, 1)
|
72
71
|
Time.stubs(:now).returns(enqueued_time)
|
73
72
|
@poller.enqueue
|
74
73
|
|
@@ -79,8 +78,8 @@ describe 'Cron Poller' do
|
|
79
78
|
end
|
80
79
|
|
81
80
|
it 'should enqueue both jobs' do
|
82
|
-
now = Time.now.utc
|
83
|
-
enqueued_time = Time.new(now.year, now.month, now.day, now.hour
|
81
|
+
now = Time.now.utc + 3600
|
82
|
+
enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 8, 1)
|
84
83
|
Time.stubs(:now).returns(enqueued_time)
|
85
84
|
#new jobs!
|
86
85
|
Sidekiq::Cron::Job.create(@args)
|
@@ -93,7 +92,7 @@ describe 'Cron Poller' do
|
|
93
92
|
assert_equal 0, conn.llen("queue:super")
|
94
93
|
end
|
95
94
|
|
96
|
-
enqueued_time = Time.new(now.year, now.month, now.day, now.hour
|
95
|
+
enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 10, 5)
|
97
96
|
Time.stubs(:now).returns(enqueued_time)
|
98
97
|
@poller.enqueue
|
99
98
|
|
@@ -104,8 +103,8 @@ describe 'Cron Poller' do
|
|
104
103
|
end
|
105
104
|
|
106
105
|
it 'should enqueue both jobs but only one time each' do
|
107
|
-
now = Time.now.utc
|
108
|
-
enqueued_time = Time.new(now.year, now.month, now.day, now.hour
|
106
|
+
now = Time.now.utc + 3600
|
107
|
+
enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 8, 1)
|
109
108
|
Time.stubs(:now).returns(enqueued_time)
|
110
109
|
#new jobs!
|
111
110
|
Sidekiq::Cron::Job.create(@args)
|
@@ -118,7 +117,7 @@ describe 'Cron Poller' do
|
|
118
117
|
assert_equal 0, conn.llen("queue:super")
|
119
118
|
end
|
120
119
|
|
121
|
-
enqueued_time = Time.new(now.year, now.month, now.day, now.hour
|
120
|
+
enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 20, 1)
|
122
121
|
Time.stubs(:now).returns(enqueued_time)
|
123
122
|
@poller.enqueue
|
124
123
|
Sidekiq.redis do |conn|
|
@@ -126,7 +125,7 @@ describe 'Cron Poller' do
|
|
126
125
|
assert_equal 1, conn.llen("queue:super")
|
127
126
|
end
|
128
127
|
|
129
|
-
enqueued_time = Time.new(now.year, now.month, now.day, now.hour
|
128
|
+
enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 20, 2)
|
130
129
|
Time.stubs(:now).returns(enqueued_time)
|
131
130
|
@poller.enqueue
|
132
131
|
Sidekiq.redis do |conn|
|
@@ -134,7 +133,7 @@ describe 'Cron Poller' do
|
|
134
133
|
assert_equal 1, conn.llen("queue:super")
|
135
134
|
end
|
136
135
|
|
137
|
-
enqueued_time = Time.new(now.year, now.month, now.day, now.hour
|
136
|
+
enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 20, 20)
|
138
137
|
Time.stubs(:now).returns(enqueued_time)
|
139
138
|
@poller.enqueue
|
140
139
|
Sidekiq.redis do |conn|
|
@@ -142,7 +141,7 @@ describe 'Cron Poller' do
|
|
142
141
|
assert_equal 1, conn.llen("queue:super")
|
143
142
|
end
|
144
143
|
|
145
|
-
enqueued_time = Time.new(now.year, now.month, now.day, now.hour
|
144
|
+
enqueued_time = Time.new(now.year, now.month, now.day, now.hour, 20, 50)
|
146
145
|
Time.stubs(:now).returns(enqueued_time)
|
147
146
|
@poller.enqueue
|
148
147
|
Sidekiq.redis do |conn|
|
@@ -9,7 +9,7 @@ describe 'Cron web' do
|
|
9
9
|
|
10
10
|
before do
|
11
11
|
Sidekiq.redis = REDIS
|
12
|
-
|
12
|
+
Redis.current.flushdb
|
13
13
|
|
14
14
|
#clear all previous saved data from redis
|
15
15
|
Sidekiq.redis do |conn|
|
@@ -41,7 +41,7 @@ describe 'Cron web' do
|
|
41
41
|
|
42
42
|
it 'display cron web with message - no cron jobs' do
|
43
43
|
get '/cron'
|
44
|
-
assert last_response.body.include?('No cron jobs found')
|
44
|
+
assert last_response.body.include?('No cron jobs were found')
|
45
45
|
end
|
46
46
|
|
47
47
|
it 'display cron web with cron jobs table' do
|
@@ -49,7 +49,7 @@ describe 'Cron web' do
|
|
49
49
|
|
50
50
|
get '/cron'
|
51
51
|
assert_equal 200, last_response.status
|
52
|
-
refute last_response.body.include?('No cron jobs found')
|
52
|
+
refute last_response.body.include?('No cron jobs were found')
|
53
53
|
assert last_response.body.include?('table')
|
54
54
|
assert last_response.body.include?("TestNameOfCronJob")
|
55
55
|
end
|
@@ -66,6 +66,25 @@ describe 'Cron web' do
|
|
66
66
|
@cron_job_name = "TesQueueNameOfCronJob"
|
67
67
|
end
|
68
68
|
|
69
|
+
it 'shows history of a cron job' do
|
70
|
+
@job.enque!
|
71
|
+
get "/cron/#{@name}"
|
72
|
+
|
73
|
+
jid =
|
74
|
+
Sidekiq.redis do |conn|
|
75
|
+
history = conn.lrange Sidekiq::Cron::Job.jid_history_key(@name), 0, -1
|
76
|
+
Sidekiq.load_json(history.last)['jid']
|
77
|
+
end
|
78
|
+
|
79
|
+
assert last_response.body.include?(jid)
|
80
|
+
end
|
81
|
+
|
82
|
+
it 'redirects to cron path when name not found' do
|
83
|
+
get '/cron/some-fake-name'
|
84
|
+
|
85
|
+
assert_match %r{\/cron\z}, last_response['Location']
|
86
|
+
end
|
87
|
+
|
69
88
|
it "disable and enable all cron jobs" do
|
70
89
|
post "/cron/__all__/disable"
|
71
90
|
assert_equal Sidekiq::Cron::Job.find(@name).status, "disabled"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sidekiq-cron
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.2.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: 2020-04-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sidekiq
|
@@ -25,19 +25,19 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 4.2.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: fugit
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: '1.1'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: '1.1'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -302,11 +302,15 @@ files:
|
|
302
302
|
- lib/sidekiq/cron/launcher.rb
|
303
303
|
- lib/sidekiq/cron/locales/de.yml
|
304
304
|
- lib/sidekiq/cron/locales/en.yml
|
305
|
+
- lib/sidekiq/cron/locales/ja.yml
|
305
306
|
- lib/sidekiq/cron/locales/ru.yml
|
307
|
+
- lib/sidekiq/cron/locales/zh-CN.yml
|
306
308
|
- lib/sidekiq/cron/poller.rb
|
307
309
|
- lib/sidekiq/cron/support.rb
|
308
310
|
- lib/sidekiq/cron/views/cron.erb
|
309
311
|
- lib/sidekiq/cron/views/cron.slim
|
312
|
+
- lib/sidekiq/cron/views/cron_show.erb
|
313
|
+
- lib/sidekiq/cron/views/cron_show.slim
|
310
314
|
- lib/sidekiq/cron/web.rb
|
311
315
|
- lib/sidekiq/cron/web_extension.rb
|
312
316
|
- sidekiq-cron.gemspec
|
@@ -335,7 +339,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
335
339
|
version: '0'
|
336
340
|
requirements: []
|
337
341
|
rubyforge_project:
|
338
|
-
rubygems_version: 2.5.
|
342
|
+
rubygems_version: 2.5.2.3
|
339
343
|
signing_key:
|
340
344
|
specification_version: 4
|
341
345
|
summary: Sidekiq Cron helps to add repeated scheduled jobs
|