gpt4 book ai didi

C# - Azure Durable Function - 重新启动编排

转载 作者:行者123 更新时间:2023-12-03 05:34:07 25 4
gpt4 key购买 nike

我正在使用持久功能。我已经了解了持久功能的工作原理,因此它有一个控制流程(事件工作的顺序)的编排,该编排负责处理事件的顺序。

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

想象一下,我有一个编排,有 5 个事件。其中一项事件调用 API,该 API 将获取字节数组形式的文档。

如果其中一项事件失败,编排可能会引发异常,我可以通过代码检测到该异常。

此外,我还有一些重试选项,可以以 2 分钟的间隔重试事件。但是...如果这些重试没有成功怎么办?

正如我所读到的,我可以使用“ContinueasNew”方法来重新启动编排,但我认为有一个问题。如果我使用此方法在一小时后重新启动编排,它会恢复原来的事件吗?

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

感谢你们抽出时间。

最佳答案

如果重新启动编排,它不会具有前一个编排的任何状态。因此第一个事件将再次运行。

如果您不希望发生这种情况,则需要重试第二次,直到成功为止。不过,我不建议将其设置为无限,编排应该始终在某个时刻完成。我只需将重试计数增加到足够高的数字,这样我就可以确信处理在至少 99% 的情况下都会成功。(你的事件失败的可能性有多大?)然后,如果仍然失败,您可以向队列发送一条消息并让它触发一些警报。然后你可以从头开始。如果某件事失败多次以至于超出了重试次数,则数据本身可能存在问题,通常此时可能需要手动干预。

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

关于C# - Azure Durable Function - 重新启动编排,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63789648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com