quebert 2.0.0 → 2.0.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.
- data/lib/quebert/job.rb +6 -1
- data/lib/quebert/version.rb +1 -1
- data/spec/job_spec.rb +23 -0
- metadata +4 -4
data/lib/quebert/job.rb
CHANGED
@@ -40,6 +40,7 @@ module Quebert
|
|
40
40
|
@delay = DEFAULT_JOB_DELAY
|
41
41
|
@ttr = DEFAULT_JOB_TTR
|
42
42
|
@args = args.dup.freeze
|
43
|
+
yield self if block_given?
|
43
44
|
self
|
44
45
|
end
|
45
46
|
|
@@ -55,14 +56,18 @@ module Quebert
|
|
55
56
|
Quebert::Timeout.timeout(@ttr, Job::Timeout){ perform(*args) }
|
56
57
|
end
|
57
58
|
|
58
|
-
|
59
|
+
# Accepts arguments that override the job options and enqueu this stuff.
|
60
|
+
def enqueue(opts={})
|
61
|
+
opts.each { |opt, val| self.send("#{opt}=", val) }
|
59
62
|
self.class.backend.put self, @priority, @delay, @ttr + QUEBERT_TTR_BUFFER
|
60
63
|
end
|
61
64
|
|
65
|
+
# Serialize the job into a JSON string that we can put on the beandstalkd queue.
|
62
66
|
def to_json
|
63
67
|
JSON.generate(Serializer::Job.serialize(self))
|
64
68
|
end
|
65
69
|
|
70
|
+
# Read a JSON string and convert into a hash that Ruby can deal with.
|
66
71
|
def self.from_json(json)
|
67
72
|
if hash = JSON.parse(json) and not hash.empty?
|
68
73
|
Serializer::Job.deserialize(hash)
|
data/lib/quebert/version.rb
CHANGED
data/spec/job_spec.rb
CHANGED
@@ -6,6 +6,10 @@ describe Quebert::Job do
|
|
6
6
|
Adder.backend = @q = Quebert::Backend::InProcess.new
|
7
7
|
end
|
8
8
|
|
9
|
+
it "shoud initialize with block" do
|
10
|
+
Adder.new(1,2,3){|a| a.priority = 8080 }.priority.should == 8080
|
11
|
+
end
|
12
|
+
|
9
13
|
it "should perform!" do
|
10
14
|
Adder.new(1,2,3).perform!.should eql(6)
|
11
15
|
end
|
@@ -71,6 +75,25 @@ describe Quebert::Job do
|
|
71
75
|
}.should change(@q, :size).by(1)
|
72
76
|
end
|
73
77
|
|
78
|
+
context "#enqueue options" do
|
79
|
+
let(:job){ Adder.new(1,2,3) }
|
80
|
+
|
81
|
+
it "should enqueue with pri" do
|
82
|
+
job.should_receive(:pri=).with(100)
|
83
|
+
job.enqueue(:pri => 100)
|
84
|
+
end
|
85
|
+
|
86
|
+
it "should enqueue with ttr" do
|
87
|
+
job.should_receive(:ttr=).with(90)
|
88
|
+
job.enqueue(:ttr => 90)
|
89
|
+
end
|
90
|
+
|
91
|
+
it "should enqueue with delay" do
|
92
|
+
job.should_receive(:delay=).with(80)
|
93
|
+
job.enqueue(:delay => 80)
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
74
97
|
context "beanstalk backend" do
|
75
98
|
before(:all) do
|
76
99
|
Quebert.serializers.register 'ActiveRecord::Base', Serializer::ActiveRecord
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quebert
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 13
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 2
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 2.0.
|
9
|
+
- 1
|
10
|
+
version: 2.0.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Brad Gessler
|
@@ -17,7 +17,7 @@ autorequire:
|
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
19
|
|
20
|
-
date: 2013-
|
20
|
+
date: 2013-05-09 00:00:00 Z
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
23
23
|
name: json
|