From c4c03f8ca33307c43e307fb1ecc2ac1ca1c3de6d Mon Sep 17 00:00:00 2001 From: Joshua Harlow Date: Fri, 17 May 2013 12:07:44 -0700 Subject: Allow resuming stage to be interrupted. --- taskflow/patterns/ordered_workflow.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'taskflow/patterns') diff --git a/taskflow/patterns/ordered_workflow.py b/taskflow/patterns/ordered_workflow.py index 1815e70..fe09889 100644 --- a/taskflow/patterns/ordered_workflow.py +++ b/taskflow/patterns/ordered_workflow.py @@ -130,9 +130,13 @@ class Workflow(object): self._change_state(context, states.STARTED) task_order = self.order() last_task = 0 + was_interrupted = False if result_fetcher: self._change_state(context, states.RESUMING) for (i, task) in enumerate(task_order): + if self.state == states.INTERRUPTED: + was_interrupted = True + break (has_result, result) = result_fetcher(self, task) if not has_result: break @@ -152,8 +156,10 @@ class Workflow(object): except Exception as e: self._perform_reconcilation(context, task, e) + if was_interrupted: + return + self._change_state(context, states.RUNNING) - was_interrupted = False for task in task_order[last_task:]: if self.state == states.INTERRUPTED: was_interrupted = True -- cgit v1.2.1