我们有一个协调器,每分钟都会被计时器触发器调用。在协调器中,在函数链接机制中调用了多个活动触发器。但是,有一种情况,每个活动触发器被调用两次,时间差仅为7毫秒。 我假设的是,当第一个活动触发器被调用时,即使该进程已经完成工作,检查点也被延迟了,所以当协调器重新启动时,它又执行了第一个活动触发器,因为它没有在azure存储队列中找到数据。有人可以确认是否是这种情况,或者活动触发器的行为是否存在问题?
答案 0 :(得分:0)
这是您正在观察的编排器的重放行为。如果协调器功能发出日志消息,则重播行为可能导致发出重复的日志消息。这是正常现象,是设计使然。看看这个documentation以获得更多信息。
当业务流程功能需要做的工作更多时,业务流程协调器将唤醒并从头开始重新执行整个功能,以重建本地状态。在重播期间,如果代码尝试调用一个函数(或执行任何其他异步工作),则持久任务框架将查询当前编排的执行历史记录。如果发现活动功能已经执行并产生结果,它将重播该功能的结果,并且协调器代码继续运行。重播将继续进行,直到功能代码完成或已安排新的异步工作为止。