Azure Durable Functions 中的编排功能是如何挂起的
How is the orchestration function suspended in Azure Durable Functions
我相信我在概念上理解 Azure Durable Functions 中发生的事情。您必须启动一个编排功能,您可以在其中等待活动。当 activity 完成时,Orchestration Function 从顶部开始,但由于 activity 现在有结果,所以使用结果而不是再次调用它。
这意味着编排功能 'goes to sleep'。我一直在 GitHub 上查看 Azure Durable Functions 和 Durable Task Framework 的源代码,但我无法完全找到影响等待任务回调的实际代码行。
谁能给我指出正确的方向?
谢谢!
我不是该主题的专家(最近我自己一直在研究任务的持久性)但本质上,'sleep' 是通过调度任务来实现的。所有持久任务(编排器和活动)都由队列消息触发,在编排的情况下,每次都会重播。
谈到代码,大部分都是在 Durable Task framework 本身完成的。对于您的特定查询
- Orchestrator 执行运行 here,返回任何挂起的编排操作
- 安排后续步骤(activity、计时器等)here. The implementation for
CompleteTaskOrchestrationWorkItemSync
is in on the providers and for Durable Functions, its Azure Storage Queues。
没有真正的休眠,但是一旦编排动作完成,另一条有响应的消息会触发编排功能,导致重放。
我相信我在概念上理解 Azure Durable Functions 中发生的事情。您必须启动一个编排功能,您可以在其中等待活动。当 activity 完成时,Orchestration Function 从顶部开始,但由于 activity 现在有结果,所以使用结果而不是再次调用它。
这意味着编排功能 'goes to sleep'。我一直在 GitHub 上查看 Azure Durable Functions 和 Durable Task Framework 的源代码,但我无法完全找到影响等待任务回调的实际代码行。
谁能给我指出正确的方向?
谢谢!
我不是该主题的专家(最近我自己一直在研究任务的持久性)但本质上,'sleep' 是通过调度任务来实现的。所有持久任务(编排器和活动)都由队列消息触发,在编排的情况下,每次都会重播。
谈到代码,大部分都是在 Durable Task framework 本身完成的。对于您的特定查询
- Orchestrator 执行运行 here,返回任何挂起的编排操作
- 安排后续步骤(activity、计时器等)here. The implementation for
CompleteTaskOrchestrationWorkItemSync
is in on the providers and for Durable Functions, its Azure Storage Queues。
没有真正的休眠,但是一旦编排动作完成,另一条有响应的消息会触发编排功能,导致重放。