Skip to content

Commit 5564bcf

Browse files
authored
Merge pull request #54 from wayfair-incubator/reprocess
Allowing re-execution of tasks based on a reprocessing the message
2 parents 6710539 + 2f23f76 commit 5564bcf

File tree

1 file changed

+20
-9
lines changed

1 file changed

+20
-9
lines changed

dagger/tasks/task.py

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -322,15 +322,21 @@ async def start(
322322
ignore_status: bool = False,
323323
) -> None:
324324
# pre-execute
325-
if self.status.code in [
326-
TaskStatusEnum.COMPLETED.name,
327-
TaskStatusEnum.SKIPPED.name,
328-
]:
325+
if (
326+
self.status.code
327+
in [
328+
TaskStatusEnum.COMPLETED.name,
329+
TaskStatusEnum.SKIPPED.name,
330+
]
331+
and not self.reprocess_on_message
332+
):
329333
return await self.on_complete(
330334
status=self.status, workflow_instance=workflow_instance
331335
)
332336
if (
333-
ignore_status or self.status.code == TaskStatusEnum.NOT_STARTED.name
337+
ignore_status
338+
or self.status.code == TaskStatusEnum.NOT_STARTED.name
339+
or self.reprocess_on_message
334340
) and workflow_instance:
335341
self.status = TaskStatus(
336342
code=TaskStatusEnum.EXECUTING.name, value=TaskStatusEnum.EXECUTING.value
@@ -964,16 +970,21 @@ async def stop(
964970
)
965971

966972
async def start(self, workflow_instance: Optional[ITemplateDAGInstance]) -> None:
967-
if self.status.code in [
968-
TaskStatusEnum.COMPLETED.name,
969-
TaskStatusEnum.SKIPPED.name,
970-
]:
973+
if (
974+
self.status.code
975+
in [
976+
TaskStatusEnum.COMPLETED.name,
977+
TaskStatusEnum.SKIPPED.name,
978+
]
979+
and not self.reprocess_on_message
980+
):
971981
return await self.on_complete(
972982
status=self.status, workflow_instance=workflow_instance
973983
)
974984
if (
975985
self.status.code == TaskStatusEnum.NOT_STARTED.name
976986
or self.status.code == TaskStatusEnum.SUBMITTED.name
987+
or self.reprocess_on_message
977988
) and workflow_instance:
978989
await self.execute(
979990
runtime_parameters=workflow_instance.runtime_parameters,

0 commit comments

Comments
 (0)