@@ -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