resque_jobs_tree 0.5.2 → 0.5.3
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/resque_jobs_tree/node.rb +3 -2
- data/lib/resque_jobs_tree/version.rb +1 -1
- data/test/process_test.rb +28 -0
- metadata +2 -2
@@ -25,7 +25,7 @@ class ResqueJobsTree::Node
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def after_perform
|
28
|
-
run_callback
|
28
|
+
run_callback :after_perform
|
29
29
|
if root?
|
30
30
|
tree.finish
|
31
31
|
else
|
@@ -38,6 +38,7 @@ class ResqueJobsTree::Node
|
|
38
38
|
|
39
39
|
def on_failure
|
40
40
|
if definition.options[:continue_on_failure]
|
41
|
+
run_callback :on_failure
|
41
42
|
after_perform
|
42
43
|
else
|
43
44
|
root.tree.on_failure
|
@@ -92,7 +93,7 @@ class ResqueJobsTree::Node
|
|
92
93
|
callback_block = definition.send callback
|
93
94
|
callback_block.call(*resources) if callback_block.kind_of? Proc
|
94
95
|
rescue
|
95
|
-
if
|
96
|
+
if [:after_perform, :on_failure].include? callback
|
96
97
|
puts "[ResqueJobsTree::Tree] after_perform callback of node #{definition.tree.name}##{name} has failed."\
|
97
98
|
" Continuing for cleanup."
|
98
99
|
else
|
data/test/process_test.rb
CHANGED
@@ -100,6 +100,34 @@ class ProcessTest < MiniTest::Unit::TestCase
|
|
100
100
|
assert_redis_empty
|
101
101
|
end
|
102
102
|
|
103
|
+
def test_launch_continue_on_failure_with_on_failure_block
|
104
|
+
Resque.inline = false
|
105
|
+
tree_definition = ResqueJobsTree::Factory.create :tree1 do
|
106
|
+
root :job1 do
|
107
|
+
perform do
|
108
|
+
Resque.redis.rpush 'history', 'tree1 job1 perform'
|
109
|
+
end
|
110
|
+
childs { [:job2] }
|
111
|
+
node :job2, continue_on_failure: true do
|
112
|
+
perform do
|
113
|
+
Resque.redis.rpush 'history', 'tree1 job2 perform'
|
114
|
+
raise 'an expected failure'
|
115
|
+
end
|
116
|
+
on_failure do
|
117
|
+
Resque.redis.rpush 'history', 'tree1 job2 on_failure'
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
122
|
+
tree_definition.spawn([1, 2, 3]).launch
|
123
|
+
assert_raises RuntimeError, 'an expected failure' do
|
124
|
+
run_resque_workers tree_definition.name
|
125
|
+
end
|
126
|
+
run_resque_workers tree_definition.name
|
127
|
+
assert_equal ['tree1 job2 perform','tree1 job2 on_failure', 'tree1 job1 perform'], redis.lrange('history', 0, -1)
|
128
|
+
redis.del 'history'
|
129
|
+
end
|
130
|
+
|
103
131
|
def test_root_failure
|
104
132
|
Resque.inline = false
|
105
133
|
tree_definition = ResqueJobsTree::Factory.create :tree1 do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: resque_jobs_tree
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-05-
|
12
|
+
date: 2013-05-31 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|