simpler_workflow 0.2.5 → 0.2.6
Sign up to get free protection for your applications and to get access to all the features.
data/README.md
CHANGED
@@ -197,6 +197,31 @@ Another addition in 0.2.0 is the swf command. This command provides a
|
|
197
197
|
script that starts and stops the workflows and provide other monitoring
|
198
198
|
tools.
|
199
199
|
|
200
|
+
## Reporting Errors
|
201
|
+
|
202
|
+
We now log exceptions and errors that occur while running activities or
|
203
|
+
handling decision tasks. The default strategy is to log the errors, but
|
204
|
+
it is easy to plug in a custom strategy. This is how you can plug in a
|
205
|
+
strategy in a Rails initializer:
|
206
|
+
|
207
|
+
```ruby
|
208
|
+
module SimplerWorkflow
|
209
|
+
unless Rails.env.development?
|
210
|
+
exception_reporter do |e, context|
|
211
|
+
Exceptional.context(context)
|
212
|
+
Exceptional.handle(e)
|
213
|
+
end
|
214
|
+
end
|
215
|
+
end
|
216
|
+
```
|
217
|
+
|
218
|
+
The block passed to the ```exception_reporter``` method will receive the
|
219
|
+
exception and the context that has been computed from the activity or
|
220
|
+
decition task.
|
221
|
+
|
222
|
+
This has been extremely helpful in tracking down and fixing errors
|
223
|
+
within a workflow that was failing quietly.
|
224
|
+
|
200
225
|
## Contributing
|
201
226
|
|
202
227
|
We welcome all kinds of contributions. This include code, fixes, issues, documentation, tests... Here's how you can contribute:
|
@@ -17,7 +17,7 @@ module SimplerWorkflow
|
|
17
17
|
@domain = domain
|
18
18
|
@name = name
|
19
19
|
@version = version
|
20
|
-
@failure_policy = :
|
20
|
+
@failure_policy = :fail
|
21
21
|
self
|
22
22
|
end
|
23
23
|
end
|
@@ -41,7 +41,7 @@ module SimplerWorkflow
|
|
41
41
|
end
|
42
42
|
|
43
43
|
def failure_policy
|
44
|
-
@failure_policy || :
|
44
|
+
@failure_policy || :fail
|
45
45
|
end
|
46
46
|
|
47
47
|
def perform_activity(&block)
|
@@ -105,7 +105,7 @@ module SimplerWorkflow
|
|
105
105
|
context[:input] = task.input
|
106
106
|
context[:activity_id] = task.activity_id
|
107
107
|
SimplerWorkflow.exception_reporter.report(e, context)
|
108
|
-
task.fail! :reason => e.message, :details => { :failure_policy => :
|
108
|
+
task.fail! :reason => e.message, :details => { :failure_policy => :fail }.to_json unless task.responded?
|
109
109
|
end
|
110
110
|
end
|
111
111
|
Process.exit(0) if @time_to_exit
|
@@ -10,13 +10,11 @@ module SimplerWorkflow
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def report(e, context = {})
|
13
|
-
if reporter
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
SimplerWorkflow.logger.error("[#{tag}] Backtrace:\n#{e.backtrace.join("\n")}")
|
19
|
-
end
|
13
|
+
reporter.call(e, context) if reporter
|
14
|
+
ensure
|
15
|
+
SimplerWorkflow.logger.error("[#{tag}] Exception: #{e.message}")
|
16
|
+
SimplerWorkflow.logger.error("[#{tag}] Context: #{context.inspect}") unless context.empty?
|
17
|
+
SimplerWorkflow.logger.error("[#{tag}] Backtrace:\n#{e.backtrace.join("\n")}")
|
20
18
|
end
|
21
19
|
|
22
20
|
def tag
|
@@ -125,8 +125,10 @@ module SimplerWorkflow
|
|
125
125
|
if event.attributes.keys.include?(:details)
|
126
126
|
details = Map.from_json(event.attributes.details)
|
127
127
|
case details.failure_policy.to_sym
|
128
|
-
when :abort
|
128
|
+
when :abort, :cancel
|
129
129
|
decision_task.cancel_workflow_execution
|
130
|
+
when :fail
|
131
|
+
decision.task.fail_workflow_execution
|
130
132
|
when :retry
|
131
133
|
logger.info("Retrying activity #{last_activity(decision_task, event).name} #{last_activity(decision_task, event).version}")
|
132
134
|
decision_task.schedule_activity_task last_activity(decision_task, event), :input => last_input(decision_task, event)
|
data/simpler_workflow.gemspec
CHANGED
@@ -27,7 +27,7 @@ EOM
|
|
27
27
|
gem.require_paths = ["lib"]
|
28
28
|
gem.version = SimplerWorkflow::VERSION
|
29
29
|
|
30
|
-
gem.add_dependency 'aws-sdk', '~> 1.
|
30
|
+
gem.add_dependency 'aws-sdk', '~> 1.6.0'
|
31
31
|
gem.add_dependency 'map'
|
32
32
|
gem.add_development_dependency 'rake'
|
33
33
|
gem.add_development_dependency 'rspec'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simpler_workflow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.6
|
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: 2012-
|
12
|
+
date: 2012-11-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: aws-sdk
|
@@ -18,7 +18,7 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 1.
|
21
|
+
version: 1.6.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 1.
|
29
|
+
version: 1.6.0
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: map
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -126,7 +126,7 @@ files:
|
|
126
126
|
- spec/spec_helper.rb
|
127
127
|
homepage: https://github.com/fredjean/simpler_workflow
|
128
128
|
licenses: []
|
129
|
-
post_install_message: ! "simpler_workflow 0.2.
|
129
|
+
post_install_message: ! "simpler_workflow 0.2.6\n========================\n\nHave
|
130
130
|
a look at https://github.com/fredjean/simpler_workflow/wiki/MIgrating-to-0.2.0 if
|
131
131
|
you\nare upgrading from a 0.1.x version of the gem. There is a fundamental change
|
132
132
|
in how the \nactivity and decision loops are run. You may need to adjust your application
|
@@ -141,12 +141,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
141
141
|
- - ! '>='
|
142
142
|
- !ruby/object:Gem::Version
|
143
143
|
version: '0'
|
144
|
+
segments:
|
145
|
+
- 0
|
146
|
+
hash: 2517248019212001977
|
144
147
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
145
148
|
none: false
|
146
149
|
requirements:
|
147
150
|
- - ! '>='
|
148
151
|
- !ruby/object:Gem::Version
|
149
152
|
version: '0'
|
153
|
+
segments:
|
154
|
+
- 0
|
155
|
+
hash: 2517248019212001977
|
150
156
|
requirements: []
|
151
157
|
rubyforge_project:
|
152
158
|
rubygems_version: 1.8.23
|