0

嗨,我有一个包含 2 个活动的工作流程。设想。一项活动在执行第二项时完成,我需要通信的 URL 链接已关闭。现在,当该 URL 启动时,工作流就会超时。那么如何重新启动超时工作流程?

这个问题的灵感来自Github issue

4

1 回答 1

2

Cadence 允许您轻松重新启动任何已关闭的任何状态的工作流:超时/失败/取消/终止。甚至以成功状态结束:已完成或 continueAsNew。

  1. 您可以使用CLI 命令将工作流重置为LastDecisionCompletedFirstDecisionCompleted resetType。如果您想保存超时前的工作流程进度,LastDecisionCompleted 将重置为最后一点。FirstDecisionCompleted 将重置为工作流的开始,就像通过仅保存工作流的开始参数来真正重新启动一样:
./cadence workflow reset -w <wid> --reset_type LastDecisionCompleted --reason "some_reason"

  1. 如果您有许多要重置的工作流程,并且您的 Cadence 集群具有高级可见性功能,可以通过查询启用您的搜索/过滤工作流程,那么您还可以使用批量重置命令,如下所示:
./cadence workflow reset-batch --query <query> --reset_type LastDecisionCompleted --reason "some_reason"

  1. 您还可以使用客户端 sdk 中的重置 API 将工作流重置到特定点。

重置是 Cadence 中最强大的操作功能之一。不仅重置为 FirstDecisionCompleted 和 LastDecisionCompleted,您还可以轻松操纵工作流程以返回到任何时间点,例如使用时间机器。如果您使用“--help”阅读命令手册,则支持更多的 resetTypes。

于 2020-12-02T07:48:46.500 回答