java - Amazon Simple Workflow - 给定工作流程ID 列出所有执行

标签 java amazon-web-services amazon-swf

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

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

我试图解决的问题是:有许多工作流程由于某种原因失败。在重新启动该过程时,我没有包含正确的时间过滤器,其中一些被重新启动,而一些被跳过。因此,我尝试使用 ListClosedWorkflowExecutionsRequest 列出所有失败的工作流程 ID。对于每个工作流程ID,获取所有执行,如果最近一次成功,则跳过它,否则重新启动。

我对 SWF 不太陌生,那么有没有更好的方法来实现相同的目的?

最佳答案

是的,可以按工作流 ID 进行过滤,如中所述 How do you get the state of a WorkflowExecution if all you have is a workflowId in Amazon SWF

答案位于示例中的第 [7] 和 [9] 行,即 executions() 方法调用。不过,对于您的用例,由于您想要的只是关闭执行,因此您只需更改方法调用以包含 lated=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 的必要参数。 。

关于java - Amazon Simple Workflow - 给定工作流程ID 列出所有执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18603306/

相关文章:

amazon-web-services - 部署 CloudFormation 模板,而不仅仅是变更集

amazon-web-services - cloudformation 是否会在删除旧资源之前创建新资源?

java - 在AWS,普通AWS项目和Maven项目中执行SWF时有什么区别吗?

java - AWS SWF : Get worker identity in workflow implementation

java - VirusTotal HTTPS 连接 Java

java - 使用谓词查询数据并使用 Spring Data JPA 进行分页

Java - 如何将 XML 元素添加到根标记?

amazon-web-services - rsa公钥没有这样的文件或目录?

amazon-sqs - 基于 SQS 消息触发 SWF 工作流

java - EmployeeStore 的 SearchByEmail 方法(HashMap)