sidejob 4.1.0 → 4.1.1
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/lib/sidejob.rb +6 -1
- data/lib/sidejob/version.rb +1 -1
- data/spec/sidejob_spec.rb +14 -0
- data/web/Gemfile.lock +1 -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: 033d179109658ea54b4b0bba545bc35a42fa48a1
|
|
4
|
+
data.tar.gz: f8a6688ab4fafadac1a053c5a3d1fa895b09e432
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2403991e7c3808512dfb86eeeaa0376e6709cdd8f30c6e739633b4e0486e72788b2aaf95fb8be7c29553c5be88269821ca4c495059ffc311d47aed1315f9ef9f
|
|
7
|
+
data.tar.gz: 85f8dc532fcde954b4504b756cf0f26827d714e4c62e59bad1b3ec75f859f79893dc2b468a9dfcc4f04e11622b53e75dfc26df1f9337cfe49dd45050a78425af
|
data/lib/sidejob.rb
CHANGED
|
@@ -38,6 +38,7 @@ module SideJob
|
|
|
38
38
|
# @param queue [String] Name of the queue to put the job in
|
|
39
39
|
# @param klass [String] Name of the class that will handle the job
|
|
40
40
|
# @param args [Array] additional args to pass to the worker's perform method (default none)
|
|
41
|
+
# @param as [String] Add as alias to job or if name already taken, does not queue new job and returns nil
|
|
41
42
|
# @param parent [SideJob::Job] parent job
|
|
42
43
|
# @param name [String] Name of child job (required if parent specified)
|
|
43
44
|
# @param at [Time, Float] Time to schedule the job, otherwise queue immediately
|
|
@@ -45,9 +46,11 @@ module SideJob
|
|
|
45
46
|
# @param inports [Hash{Symbol,String => Hash}] Input port configuration. Port name to options.
|
|
46
47
|
# @param outports [Hash{Symbol,String => Hash}] Output port configuration. Port name to options.
|
|
47
48
|
# @return [SideJob::Job] Job
|
|
48
|
-
def self.queue(queue, klass, args: nil, parent: nil, name: nil, at: nil, by: nil, inports: nil, outports: nil)
|
|
49
|
+
def self.queue(queue, klass, args: nil, as: nil, parent: nil, name: nil, at: nil, by: nil, inports: nil, outports: nil)
|
|
49
50
|
raise "No worker registered for #{klass} in queue #{queue}" unless SideJob::Worker.config(queue, klass)
|
|
50
51
|
|
|
52
|
+
return nil if as && SideJob.redis.hget('jobs:aliases', as)
|
|
53
|
+
|
|
51
54
|
# To prevent race conditions, we generate the id and set all data in redis before queuing the job to sidekiq
|
|
52
55
|
# Otherwise, sidekiq may start the job too quickly
|
|
53
56
|
id = SideJob.redis.incr('jobs:last_id')
|
|
@@ -71,6 +74,8 @@ module SideJob
|
|
|
71
74
|
job.inports = inports
|
|
72
75
|
job.outports = outports
|
|
73
76
|
|
|
77
|
+
job.add_alias(as) if as
|
|
78
|
+
|
|
74
79
|
job.run(at: at)
|
|
75
80
|
end
|
|
76
81
|
|
data/lib/sidejob/version.rb
CHANGED
data/spec/sidejob_spec.rb
CHANGED
|
@@ -65,6 +65,20 @@ describe SideJob do
|
|
|
65
65
|
SideJob::Worker.drain_queue
|
|
66
66
|
end
|
|
67
67
|
|
|
68
|
+
it 'can specify a job alias' do
|
|
69
|
+
expect(SideJob.find('mytest')).to be nil
|
|
70
|
+
job = SideJob.queue('testq', 'TestWorker', as: 'mytest')
|
|
71
|
+
expect(SideJob.find('mytest')).to eq job
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
it 'does not queue a job if alias already used' do
|
|
75
|
+
job = SideJob.queue('testq', 'TestWorker', as: 'mytest')
|
|
76
|
+
expect(SideJob.find('mytest')).to eq job
|
|
77
|
+
expect {
|
|
78
|
+
expect(SideJob.queue('testq', 'TestWorker', as: 'mytest')).to be nil
|
|
79
|
+
}.to change {Sidekiq::Stats.new.enqueued}.by(0)
|
|
80
|
+
end
|
|
81
|
+
|
|
68
82
|
it 'can specify job parent' do
|
|
69
83
|
expect {
|
|
70
84
|
parent = SideJob.queue('testq', 'TestWorker')
|
data/web/Gemfile.lock
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sidejob
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.1.
|
|
4
|
+
version: 4.1.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Austin Che
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-
|
|
11
|
+
date: 2015-10-04 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: sidekiq
|