Class: AWS::Flow::DecisionTaskHandler
- Inherits:
-
Object
- Object
- AWS::Flow::DecisionTaskHandler
- Defined in:
- lib/aws/decider/task_handler.rb
Overview
A decision task handler to work with a WorkflowTaskPoller. Create a ‘DecisionTaskHandler` and pass it to WorkflowTaskPoller on construction.
Instance Attribute Summary collapse
-
#workflow_definition_map ⇒ Object
readonly
Returns the value of attribute workflow_definition_map.
Instance Method Summary collapse
-
#create_async_decider(history_helper) ⇒ AsyncDecider
Creates a new asynchronous decider.
-
#handle_decision_task(decision_task_iterator) ⇒ Object
Handles a decision task.
-
#initialize(workflow_definition_map, options = nil) ⇒ DecisionTaskHandler
constructor
Creates a new ‘DecisionTaskHandler`.
Constructor Details
#initialize(workflow_definition_map, options = nil) ⇒ DecisionTaskHandler
Creates a new ‘DecisionTaskHandler`.
33 34 35 36 37 |
# File 'lib/aws/decider/task_handler.rb', line 33 def initialize(workflow_definition_map, =nil) @workflow_definition_map = workflow_definition_map @logger = .logger if @logger ||= Utilities::LogFactory.make_logger(self) end |
Instance Attribute Details
#workflow_definition_map ⇒ Object (readonly)
Returns the value of attribute workflow_definition_map.
24 25 26 |
# File 'lib/aws/decider/task_handler.rb', line 24 def workflow_definition_map @workflow_definition_map end |
Instance Method Details
#create_async_decider(history_helper) ⇒ AsyncDecider
Creates a new asynchronous decider.
62 63 64 65 66 67 68 69 |
# File 'lib/aws/decider/task_handler.rb', line 62 def create_async_decider(history_helper) task = history_helper.get_decision_task workflow_type = task.workflow_type # TODO put in context correctly workflow_definition_factory = @workflow_definition_map[workflow_type] raise "No such definition for #{workflow_type}" if workflow_definition_factory.nil? AsyncDecider.new(workflow_definition_factory, history_helper, DecisionHelper.new) end |
#handle_decision_task(decision_task_iterator) ⇒ Object
Handles a decision task.
44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/aws/decider/task_handler.rb', line 44 def handle_decision_task(decision_task_iterator) history_helper = HistoryHelper.new(decision_task_iterator) decider = create_async_decider(history_helper) decider.decide decisions = decider.get_decisions response = {:task_token => decider.task_token} context_data = decider.decision_helper.workflow_context_data response[:execution_context] = context_data.to_s unless context_data.nil? response[:decisions] = decisions unless decisions.nil? return response end |