业务流程功能如何在Azure耐用功能中暂停

时间:2019-10-01 16:30:14

标签: async-await azure-functions azure-durable-functions

我相信我会在概念上理解Azure耐用功能中的内容。您必须启动业务流程功能,以等待活动。活动完成后,编排功能从顶部开始,但是由于该活动现在具有结果,因此将使用结果而不是再次调用它。

这意味着编排功能“进入睡眠状态”。我一直在研究GitHub上的Azure耐用功能和耐用任务框架的源代码,但我无法完全找到影响等待任务回调的实际代码行。

有人能指出我正确的方向吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我不是该主题的专家(最近我一直在研究任务的持久性),但从本质上讲,“睡眠”是通过安排任务来实现的。所有持久性任务(编排器和活动)都由队列消息触发,并且在编排的情况下,每次都会重播。

谈到代码,大部分工作都是在Durable Task framework本身中完成的。对于您的特定查询

  1. Orchestrator执行运行here,返回所有未完成的业务流程动作
  2. 安排后续步骤(活动,计时器等)herebadge.setBadgeGravity(BadgeDrawable.BOTTOM_END); 的实现在提供程序中,而持久功能的实现在其Azure Storage Queues中。

没有真正的睡眠,但是一旦编排动作完成,带有响应的另一条消息将触发编排功能,使其重播。