C#-Azure持久函数-重新启动编排



我使用的是持久函数。我已经了解了持久函数是如何工作的,所以它有一个控制流(活动工作的顺序(的编排,该编排负责处理活动的顺序。

但目前我有一个问题,我没有找到正确的答案,也许你可以帮助我:

想象一下,我有一个编排,有5个活动。其中一个活动对API进行调用,该API将获取作为字节数组的文档。

如果其中一个活动失败,编排可以抛出异常,我可以通过代码检测到这一点。

此外,我还有一些重试选项,以2分钟为间隔重试活动。但是如果这些重试没有成功怎么办?

由于我能够阅读,我可以使用";ContinueasNew;方法来重新启动编排,但我认为存在问题。如果我使用此方法在1小时后重新启动编排,它会恢复原来的活动吗?

我的意思是,如果第一个活动完成了,当我因其中一个活动失败而重新启动编排时,它会像以前一样在第二个活动上恢复吗?

谢谢你们抽出时间。

如果重新启动编排,它就没有上一个编排的任何状态。因此,第一个活动将再次运行。

如果你不想发生这种情况,你需要重试第二次,直到成功。我不建议让它无限,不过,编排应该总是在某个时刻结束。我只想把重试次数增加到一个足够高的数字,这样我就可以相信处理至少在99%的情况下会成功。(你的活动失败的可能性有多大?(然后,如果它仍然失败,您可以向队列发送一条消息,并让它触发一些警报。然后你可以从头开始。如果某个东西失败了很多次,以至于超出了重试量,那么数据本身可能有问题,此时通常需要手动干预。

另一种选择是,如果重试失败,则从业务流程内发送警报,然后等待批准或拒绝的管理员发出外部事件,然后重试。

最新更新