class SimplerWorkflow::Workflow::ActivityTaskFailedHandler

Public Instance Methods

call(decision_task, event) click to toggle source
# File lib/simpler_workflow/workflow.rb, line 204
def call(decision_task, event)
  last_activity_type = last_activity(decision_task, event)
  failed_activity = domain.activities[last_activity_type]

  case failed_activity.failure_policy
  when :abort, :cancel
    SimplerWorkflow.logger.info("Cancelling workflow execution.")
    decision_task.cancel_workflow_execution
  when :retry
    SimplerWorkflow.logger.info("Retrying activity #{last_activity_type.name} #{last_activity_type.version}")
    decision_task.schedule_activity_task last_activity_type, :input => last_input(decision_task, event)
  else
    SimplerWorkflow.logger.info("Failing the workflow execution.")
    decision_task.fail_workflow_execution
  end
end