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 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
31 32 33 34 35 |
# File 'lib/aws/decider/task_handler.rb', line 31 def initialize(workflow_definition_map, =nil) @workflow_definition_map = workflow_definition_map @logger = .logger if @logger ||= Utilities::LogFactory.make_logger(self, "debug") end |
Instance Method Details
#create_async_decider(history_helper) ⇒ AsyncDecider
Creates a new asynchronous decider.
63 64 65 66 67 68 69 70 |
# File 'lib/aws/decider/task_handler.rb', line 63 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
42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/aws/decider/task_handler.rb', line 42 def handle_decision_task(decision_task_iterator) history_helper = HistoryHelper.new(decision_task_iterator) @logger.debug "made history_helper" decider = create_async_decider(history_helper) @logger.debug "made async_decider" decider.decide @logger.debug "decided" 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 |