java Amazon简单工作流-给定workflowID列出所有执行

pzfprimi  于 2023-03-16  发布在  Java
关注(0)|答案(1)|浏览(158)

工作流再次启动时,使用相同的workflowID,但获得不同的runID。是否有办法检索给定工作流ID的此类执行(包含不同的runID)?
我研究了ListClosedWorkflowExecutionsRequest API,但它只是列出了所有工作流执行,而不是针对特定的workflowID。
我试图解决的问题是:有许多工作流由于某种原因失败。在重新启动过程中,我没有包括正确的时间过滤器,其中一些被重新启动,而一些被跳过。所以我尝试使用ListClosedWorkflowExecutionsRequest列出所有失败的工作流ID。对于每个工作流ID,获取所有执行,如果最新的成功,跳过它,否则重新启动。
我对SWF不太熟悉,所以有没有更好的方法来完成同样的任务?

bttbmeg0

bttbmeg01#

可以,可以按工作流ID进行过滤,如How do you get the state of a WorkflowExecution if all you have is a workflowId in Amazon SWF中所述。
答案就在例子中的第[7]和[9]行,executions()方法调用。但是对于您的用例,因为您想要的都是关闭的执行,您只需修改方法调用以包括closed=True。因此,为了获得24小时内所有关闭的执行(默认):

In [7]: domain.executions(closed=True)

对于按工作流ID筛选的已关闭执行:

In [9]: domain.executions(workflow_id='my_wf_id', closed=True)

如果您使用的不是boto.swf,而是其他库,请参阅API文档,了解传递给ListClosedWorkflowExecutions API的必要参数。

相关问题