首页 > 解决方案 > 稍后重试 Durable Function 活动/协调器

问题描述

考虑以下场景:

我的协调O器启动,并调用 sub-orchestrator SS成功处理活动A1A2但失败A3。我有自动重试A3,但没有运气(我正在调用的网络服务给出 404)。A1没问题,我捕捉到异常并为and执行清理A2

最终我需要重试该过程。这样做的正确方法是什么?

我目前的方法是,将一条消息写入一个具有可见性延迟的自定义毒物队列,然后让另一个 AZ 函数从该队列中提取,并重新启动子协调器。

如果我可以使用相同的调用 ID 重新启动相同的子协调器,那也将是理想的。从理论上讲,这可以使我不必重做A1以及A2清理它们!

这是正确的思路,还是我滥用了持久功能?

标签: azureazure-functionsserverlessazure-durable-functions

解决方案


有一个 API - Rewind Instances (Preview) - 我相信你可以使用它。您需要编排实例 ID 才能使用它。

您应该能够查询失败的实例,根据自定义状态进行过滤,然后对它们调用 rewind。


推荐阅读