simpler_workflow 0.2.0 → 0.2.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.
@@ -52,8 +52,10 @@ module SimplerWorkflow
|
|
52
52
|
logger.info("Performing task #{name}")
|
53
53
|
@perform_task.call(task)
|
54
54
|
rescue => e
|
55
|
-
|
56
|
-
|
55
|
+
context = to_activity_type
|
56
|
+
context[:input] = task.input
|
57
|
+
context[:activity_id] = task.activity_id
|
58
|
+
SimplerWorkflow.exception_reporter.report(e, context)
|
57
59
|
task.fail! :reason => e.message[0..250], :details => {:failure_policy => failure_policy}.to_json
|
58
60
|
end
|
59
61
|
|
@@ -104,8 +106,11 @@ module SimplerWorkflow
|
|
104
106
|
retry
|
105
107
|
end
|
106
108
|
rescue => e
|
107
|
-
|
108
|
-
|
109
|
+
context = to_activity_type
|
110
|
+
context[:input] = task.input
|
111
|
+
context[:activity_id] = task.activity_id
|
112
|
+
SimplerWorkflow.exception_reporter.report(e, context)
|
113
|
+
raise e
|
109
114
|
end
|
110
115
|
end
|
111
116
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# Default exception handler. Just logs to the logger and re-raise
|
2
|
+
# so the exception can be managed as usual.
|
3
|
+
|
4
|
+
module SimplerWorkflow
|
5
|
+
class DefaultExceptionReporter
|
6
|
+
attr_accessor :reporter, :tag
|
7
|
+
|
8
|
+
def initialize(&block)
|
9
|
+
@reporter = block if block_given?
|
10
|
+
end
|
11
|
+
|
12
|
+
def report(e, context = {})
|
13
|
+
if reporter
|
14
|
+
reporter.call(e, context)
|
15
|
+
else
|
16
|
+
SimplerWorkflow.logger.error("[#{tag}] Exception: #{e.message}")
|
17
|
+
SimplerWorkflow.logger.error("[#{tag}] Context: #{context.inspect}") unless context.empty?
|
18
|
+
SimplerWorkflow.logger.error("[#{tag}] Backtrace:\n#{e.backtrace.join("\n")}")
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def tag
|
23
|
+
@tag || "SimplerWorkflow"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -75,8 +75,15 @@ module SimplerWorkflow
|
|
75
75
|
else
|
76
76
|
retry
|
77
77
|
end
|
78
|
+
rescue => e
|
79
|
+
context = {
|
80
|
+
:workflow_execution => decision_task.workflow_execution,
|
81
|
+
:workflow => to_workflow_type,
|
82
|
+
:decision_task => decision_task
|
83
|
+
}
|
84
|
+
SimplerWorkflow.exception_reporter.report(e, context)
|
85
|
+
raise e
|
78
86
|
end
|
79
|
-
nil
|
80
87
|
end
|
81
88
|
end
|
82
89
|
end
|
@@ -145,6 +152,10 @@ module SimplerWorkflow
|
|
145
152
|
end
|
146
153
|
end
|
147
154
|
|
155
|
+
def to_workflow_type
|
156
|
+
{ :name => name, :version => version }
|
157
|
+
end
|
158
|
+
|
148
159
|
def start_workflow(input, options = {})
|
149
160
|
options[:input] = input
|
150
161
|
domain.workflow_types[name.to_s, version].start_execution(options)
|
data/lib/simpler_workflow.rb
CHANGED
@@ -38,11 +38,24 @@ module SimplerWorkflow
|
|
38
38
|
@child_processes ||= []
|
39
39
|
end
|
40
40
|
|
41
|
+
def exception_reporter(&block)
|
42
|
+
if block_given?
|
43
|
+
@exception_reporter = DefaultExceptionReporter.new(&block)
|
44
|
+
end
|
45
|
+
|
46
|
+
@exception_reporter || DefaultExceptionReporter.new
|
47
|
+
end
|
48
|
+
|
49
|
+
def exception_reporter=(exception_handler)
|
50
|
+
@exception_reporter = exception_handler
|
51
|
+
end
|
52
|
+
|
41
53
|
autoload :Version, 'simpler_workflow/version'
|
42
54
|
autoload :Domain, 'simpler_workflow/domain'
|
43
55
|
autoload :Workflow, 'simpler_workflow/workflow'
|
44
56
|
autoload :Activity, 'simpler_workflow/activity'
|
45
57
|
autoload :OptionsAsMethods, 'simpler_workflow/options_as_methods'
|
58
|
+
autoload :DefaultExceptionReporter, 'simpler_workflow/default_exception_reporter'
|
46
59
|
end
|
47
60
|
|
48
61
|
class Map
|
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.1
|
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-09-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: aws-sdk
|
@@ -112,6 +112,7 @@ files:
|
|
112
112
|
- lib/aws/simple_workflow/decision_task_additions.rb
|
113
113
|
- lib/simpler_workflow.rb
|
114
114
|
- lib/simpler_workflow/activity.rb
|
115
|
+
- lib/simpler_workflow/default_exception_reporter.rb
|
115
116
|
- lib/simpler_workflow/domain.rb
|
116
117
|
- lib/simpler_workflow/options_as_methods.rb
|
117
118
|
- lib/simpler_workflow/tasks.rb
|
@@ -125,7 +126,7 @@ files:
|
|
125
126
|
- spec/spec_helper.rb
|
126
127
|
homepage: https://github.com/fredjean/simpler_workflow
|
127
128
|
licenses: []
|
128
|
-
post_install_message: ! "simpler_workflow 0.2.
|
129
|
+
post_install_message: ! "simpler_workflow 0.2.1\n========================\n\nHave
|
129
130
|
a look at https://github.com/fredjean/simpler_workflow/wiki/MIgrating-to-0.2.0 if
|
130
131
|
you\nare upgrading from a 0.1.x version of the gem. There is a fundamental change
|
131
132
|
in how the \nactivity and decision loops are run. You may need to adjust your application
|
@@ -140,18 +141,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
140
141
|
- - ! '>='
|
141
142
|
- !ruby/object:Gem::Version
|
142
143
|
version: '0'
|
143
|
-
segments:
|
144
|
-
- 0
|
145
|
-
hash: -1625844284378708087
|
146
144
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
147
145
|
none: false
|
148
146
|
requirements:
|
149
147
|
- - ! '>='
|
150
148
|
- !ruby/object:Gem::Version
|
151
149
|
version: '0'
|
152
|
-
segments:
|
153
|
-
- 0
|
154
|
-
hash: -1625844284378708087
|
155
150
|
requirements: []
|
156
151
|
rubyforge_project:
|
157
152
|
rubygems_version: 1.8.23
|