Amazon Simple Workflow - 给定workflowID列出所有执行

时间:2013-09-03 23:58:23

标签: java amazon-web-services amazon amazon-swf

再次启动工作流时,使用相同的workflowID,它会获得不同的runID。有没有办法检索给定工作流ID的此类执行(包含不同的runID)?

我探索了ListClosedWorkflowExecutionsRequest API,但它只列出了所有工作流程执行,而不是特定的工作流程ID。

我想解决的问题是:由于某种原因,有许多工作流失败了。在重新启动过程中,我没有包含正确的时间过滤器,很少有人重新启动,而很少有人跳过。所以我要做的是,使用ListClosedWorkflowExecutionsRequest列出所有失败的工作流ID。对于每个workflowID,获取所有执行,如果最新执行,则跳过它,否则重启。

我对SWF不熟悉,有没有更好的方法来实现相同的目标?

由于

1 个答案:

答案 0 :(得分:2)

是的,可以按照中所述按workflowId进行过滤 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的必要参数。