sidekiq-cron 0.4.4 → 0.4.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/Gemfile +1 -1
- data/VERSION +1 -1
- data/lib/sidekiq/cron/job.rb +4 -5
- data/sidekiq-cron.gemspec +2 -2
- data/test/unit/job_test.rb +56 -0
- data/test/unit/web_extension_test.rb +22 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 27adf3b417616b5e594db892be3866efc4911387
|
4
|
+
data.tar.gz: 6e788c3f530ebf8a9ed62fe54da69dd3e18b07ac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7cb4c353e7f151e6a9dd8c5749769550fffef3fd00f0d6944029560f73aaa68573b3425fa023a1526d8702ad9dd0bb8a077e53810e3b8d7bd73fd13a57f19f56
|
7
|
+
data.tar.gz: 6646a6b48f28907665b71b37307302b645a8c6fab980cde71612c6b081ee8c90b3f5d88ef199e9e579e9dea3ed7589dd29a42aab60283ee67ec84e0efe32c3bd
|
data/Gemfile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.5
|
data/lib/sidekiq/cron/job.rb
CHANGED
@@ -79,13 +79,13 @@ module Sidekiq
|
|
79
79
|
end
|
80
80
|
|
81
81
|
def enqueue_active_job(klass_const)
|
82
|
-
klass_const.set(queue: @
|
82
|
+
klass_const.set(queue: @queue).perform_later(*@args)
|
83
83
|
|
84
84
|
true
|
85
85
|
end
|
86
86
|
|
87
87
|
def enqueue_sidekiq_worker(klass_const)
|
88
|
-
klass_const.set(queue:
|
88
|
+
klass_const.set(queue: queue_name_with_prefix).perform_async(*@args)
|
89
89
|
|
90
90
|
true
|
91
91
|
end
|
@@ -306,7 +306,6 @@ module Sidekiq
|
|
306
306
|
#Unknown class
|
307
307
|
message_data.merge("queue"=>"default")
|
308
308
|
end
|
309
|
-
|
310
309
|
end
|
311
310
|
|
312
311
|
#override queue if setted in config
|
@@ -518,7 +517,7 @@ module Sidekiq
|
|
518
517
|
private
|
519
518
|
|
520
519
|
def not_enqueued_after?(time)
|
521
|
-
@last_enqueue_time.nil? || @last_enqueue_time < last_time(time)
|
520
|
+
@last_enqueue_time.nil? || @last_enqueue_time.to_i < last_time(time).to_i
|
522
521
|
end
|
523
522
|
|
524
523
|
# Try parsing inbound args into an array.
|
@@ -544,7 +543,7 @@ module Sidekiq
|
|
544
543
|
|
545
544
|
def not_past_scheduled_time?(current_time)
|
546
545
|
last_cron_time = Rufus::Scheduler::CronLine.new(@cron).previous_time(current_time)
|
547
|
-
return false if (current_time - last_cron_time) > 60
|
546
|
+
return false if (current_time.to_i - last_cron_time.to_i) > 60
|
548
547
|
true
|
549
548
|
end
|
550
549
|
|
data/sidekiq-cron.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: sidekiq-cron 0.4.
|
5
|
+
# stub: sidekiq-cron 0.4.5 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "sidekiq-cron".freeze
|
9
|
-
s.version = "0.4.
|
9
|
+
s.version = "0.4.5"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib".freeze]
|
data/test/unit/job_test.rb
CHANGED
@@ -256,6 +256,30 @@ describe "Cron Job" do
|
|
256
256
|
end
|
257
257
|
end
|
258
258
|
|
259
|
+
describe '#sidekiq_worker_message settings overwrite queue name' do
|
260
|
+
before do
|
261
|
+
@args = {
|
262
|
+
name: 'Test',
|
263
|
+
cron: '* * * * *',
|
264
|
+
queue: 'super_queue',
|
265
|
+
klass: 'CronTestClassWithQueue',
|
266
|
+
args: { foo: 'bar' }
|
267
|
+
}
|
268
|
+
@job = Sidekiq::Cron::Job.new(@args)
|
269
|
+
end
|
270
|
+
|
271
|
+
it 'should return valid payload for Sidekiq::Client with overwrite queue name' do
|
272
|
+
payload = {
|
273
|
+
"retry" => false,
|
274
|
+
"backtrace"=>true,
|
275
|
+
"queue" => "super_queue",
|
276
|
+
"class" => "CronTestClassWithQueue",
|
277
|
+
"args" => [{:foo=>"bar"}]
|
278
|
+
}
|
279
|
+
assert_equal @job.sidekiq_worker_message, payload
|
280
|
+
end
|
281
|
+
end
|
282
|
+
|
259
283
|
describe '#active_job_message' do
|
260
284
|
before do
|
261
285
|
SecureRandom.stubs(:uuid).returns('XYZ')
|
@@ -911,5 +935,37 @@ describe "Cron Job" do
|
|
911
935
|
assert_equal Sidekiq::Cron::Job.all.size, 2, "Should have 2 jobs after load"
|
912
936
|
end
|
913
937
|
end
|
938
|
+
|
939
|
+
describe "from array with queue_name" do
|
940
|
+
before do
|
941
|
+
@jobs_array = [
|
942
|
+
{
|
943
|
+
'name' => 'name_of_job',
|
944
|
+
'class' => 'CronTestClassWithQueue',
|
945
|
+
'cron' => '1 * * * *',
|
946
|
+
'args' => '(OPTIONAL) [Array or Hash]',
|
947
|
+
'queue' => 'from_array'
|
948
|
+
}
|
949
|
+
]
|
950
|
+
end
|
951
|
+
|
952
|
+
it "create new jobs and update old one with same settings" do
|
953
|
+
assert_equal Sidekiq::Cron::Job.all.size, 0, "Should have 0 jobs before load"
|
954
|
+
out = Sidekiq::Cron::Job.load_from_array @jobs_array
|
955
|
+
assert_equal out.size, 0, "should have 0 error"
|
956
|
+
assert_equal Sidekiq::Cron::Job.all.size, 1, "Should have 2 jobs after load"
|
957
|
+
|
958
|
+
payload = {
|
959
|
+
"retry" => false,
|
960
|
+
"backtrace"=>true,
|
961
|
+
"queue" => "from_array",
|
962
|
+
"class" => "CronTestClassWithQueue",
|
963
|
+
"args" => ['(OPTIONAL) [Array or Hash]']
|
964
|
+
}
|
965
|
+
|
966
|
+
assert_equal Sidekiq::Cron::Job.all.first.sidekiq_worker_message, payload
|
967
|
+
end
|
968
|
+
|
969
|
+
end
|
914
970
|
end
|
915
971
|
end
|
@@ -24,6 +24,14 @@ describe 'Cron web' do
|
|
24
24
|
klass: "CronTestClass"
|
25
25
|
}
|
26
26
|
|
27
|
+
|
28
|
+
@cron_args = {
|
29
|
+
name: "TesQueueNameOfCronJob",
|
30
|
+
cron: "*/2 * * * *",
|
31
|
+
klass: "CronQueueTestClass",
|
32
|
+
queue: "cron"
|
33
|
+
}
|
34
|
+
|
27
35
|
end
|
28
36
|
|
29
37
|
it 'display cron web' do
|
@@ -38,6 +46,7 @@ describe 'Cron web' do
|
|
38
46
|
|
39
47
|
it 'display cron web with cron jobs table' do
|
40
48
|
Sidekiq::Cron::Job.create(@args)
|
49
|
+
|
41
50
|
get '/cron'
|
42
51
|
assert_equal 200, last_response.status
|
43
52
|
refute last_response.body.include?('No cron jobs found')
|
@@ -51,6 +60,10 @@ describe 'Cron web' do
|
|
51
60
|
@job = Sidekiq::Cron::Job.new(@args.merge(status: "enabled"))
|
52
61
|
@job.save
|
53
62
|
@name = "TestNameOfCronJob"
|
63
|
+
|
64
|
+
@cron_job = Sidekiq::Cron::Job.new(@cron_args.merge(status: "enabled"))
|
65
|
+
@cron_job.save
|
66
|
+
@cron_job_name = "TesQueueNameOfCronJob"
|
54
67
|
end
|
55
68
|
|
56
69
|
it "disable and enable cron job" do
|
@@ -78,11 +91,19 @@ describe 'Cron web' do
|
|
78
91
|
Sidekiq.redis do |conn|
|
79
92
|
assert_equal 2, conn.llen("queue:default"), "Queue should have 2 job"
|
80
93
|
end
|
94
|
+
|
95
|
+
#should enqueue to cron job queue
|
96
|
+
post "/cron/#{@cron_job_name}/enque"
|
97
|
+
|
98
|
+
Sidekiq.redis do |conn|
|
99
|
+
assert_equal 1, conn.llen("queue:cron"), "Queue should have 1 cron job"
|
100
|
+
end
|
81
101
|
end
|
82
102
|
|
83
103
|
it "destroy job" do
|
84
|
-
assert_equal Sidekiq::Cron::Job.all.size,
|
104
|
+
assert_equal Sidekiq::Cron::Job.all.size, 2, "Should have 2 job"
|
85
105
|
post "/cron/#{@name}/delete"
|
106
|
+
post "/cron/#{@cron_job_name}/delete"
|
86
107
|
assert_equal Sidekiq::Cron::Job.all.size, 0, "Should have zero jobs"
|
87
108
|
end
|
88
109
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sidekiq-cron
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ondrej Bartas
|
@@ -303,7 +303,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
303
303
|
version: '0'
|
304
304
|
requirements: []
|
305
305
|
rubyforge_project:
|
306
|
-
rubygems_version: 2.
|
306
|
+
rubygems_version: 2.4.5
|
307
307
|
signing_key:
|
308
308
|
specification_version: 4
|
309
309
|
summary: Sidekiq Cron helps to add repeated scheduled jobs
|