sidejob 4.1.0 → 4.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e731ae1460c300e29d0698535fd1b7108efd3568
4
- data.tar.gz: be777ac02165ead0b44de9100cefb8dfbb3c16ac
3
+ metadata.gz: 033d179109658ea54b4b0bba545bc35a42fa48a1
4
+ data.tar.gz: f8a6688ab4fafadac1a053c5a3d1fa895b09e432
5
5
  SHA512:
6
- metadata.gz: 82265dc59bf18956bff558a9e9c996d74ae4a7a2f70f396d6a6188a73c884743756c57fac40bbba958de9bc9fe95e5aca435a3ae4489d23b56700c8f3b330448
7
- data.tar.gz: baac41c609404f39cc9083f13dd489856faaa34f76db2fc5774e1190cf0c9ddbbdab036d893a77a22749a92f5670a62cc04e033e9367eb3ab3f6b1ecf3368cac
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
 
@@ -1,4 +1,4 @@
1
1
  module SideJob
2
2
  # The current SideJob version
3
- VERSION = '4.1.0'
3
+ VERSION = '4.1.1'
4
4
  end
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
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- sidejob (4.1.0)
4
+ sidejob (4.1.1)
5
5
  sidekiq
6
6
 
7
7
  GEM
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.0
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-09-07 00:00:00.000000000 Z
11
+ date: 2015-10-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sidekiq