resque_jobs_tree 0.5.2 → 0.5.3

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.
@@ -25,7 +25,7 @@ class ResqueJobsTree::Node
25
25
  end
26
26
 
27
27
  def after_perform
28
- run_callback(:after_perform)
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 callback == :after_perform
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
@@ -1,3 +1,3 @@
1
1
  module ResqueJobsTree
2
- VERSION = "0.5.2"
2
+ VERSION = "0.5.3"
3
3
  end
@@ -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.2
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-02 00:00:00.000000000 Z
12
+ date: 2013-05-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler