def handle_activity_task_completed(self, event: HistoryEvent):
     attr = event.activity_task_completed_event_attributes
     if self.decider.handle_activity_task_closed(attr.scheduled_event_id):
         future = self.scheduled_activities.get(attr.scheduled_event_id)
         if future:
             self.scheduled_activities.pop(attr.scheduled_event_id)
             future.set_result(attr.result)
         else:
             raise NonDeterministicWorkflowException(
                 f"Trying to complete activity event {attr.scheduled_event_id} that is not in scheduled_activities")
 def handle_activity_task_timed_out(self, event: HistoryEvent):
     attr = event.activity_task_timed_out_event_attributes
     if self.decider.handle_activity_task_closed(attr.scheduled_event_id):
         future = self.scheduled_activities.get(attr.scheduled_event_id)
         if future:
             self.scheduled_activities.pop(attr.scheduled_event_id)
             ex = ActivityTaskTimeoutException(event.event_id, attr.timeout_type, attr.details)
             future.set_exception(ex)
         else:
             raise NonDeterministicWorkflowException(
                 f"Trying to complete activity event {attr.scheduled_event_id} that is not in scheduled_activities")
 def handle_activity_task_failed(self, event: HistoryEvent):
     attr = event.activity_task_failed_event_attributes
     if self.decider.handle_activity_task_closed(attr.scheduled_event_id):
         future = self.scheduled_activities.get(attr.scheduled_event_id)
         if future:
             self.scheduled_activities.pop(attr.scheduled_event_id)
             # TODO: attr.reason - what should we do with it?
             ex = deserialize_exception(attr.details)
             future.set_exception(ex)
         else:
             raise NonDeterministicWorkflowException(
                 f"Trying to complete activity event {attr.scheduled_event_id} that is not in scheduled_activities")
Example #4
0
 def get_decision(self, decision_id: DecisionId) -> DecisionStateMachine:
     result: DecisionStateMachine = self.decisions.get(decision_id)
     if not result:
         raise NonDeterministicWorkflowException(f"Unknown {decision_id}.")
     return result