【问题标题】:Activity trigger called twice within an orchestrator在协调器中调用两次活动触发器
【发布时间】:2020-02-04 23:19:41
【问题描述】:

我们有一个编排器,它每分钟被计时器触发器调用一次。在编排器中,函数链机制中调用了多个活动触发器。但是有一个实例,每个活动触发器被调用两次,时间差仅为 7 毫秒。 我假设是当第一个活动触发器被调用时,检查点被延迟,即使进程已经完成了它的工作,所以当协调器重新启动时,它再次执行了第一个活动触发器,因为它没有在天蓝色存储队列中找到数据.有人可以确认是否会出现这种情况,或者活动触发器的行为方式是否存在问题?

【问题讨论】:

  • 现在有更新吗?如果对您有帮助,请接受它作为答案。(单击答案旁边的复选标记将其从灰色切换为已填充。)

标签: azure-storage orchestration azure-storage-queues checkpoint azure-durable-functions


【解决方案1】:

这是您正在观察的编排器的重放行为。如果协调器函数发出日志消息,重播行为可能会导致发出重复的日志消息。这是正常的,也是设计使然。请查看此documentation 了解更多信息。

当一个编排函数有更多工作要做时,编排器会唤醒并从头开始重新执行整个函数以重建本地状态。在重放期间,如果代码尝试调用函数(或执行任何其他异步工作),则持久任务框架会查询当前编排的执行历史记录。如果它发现活动函数已经执行并产生了结果,它会重放该函数的结果并且编排器代码继续运行。重播一直持续到函数代码完成或它安排了新的异步工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多