Триггер активности вызывается дважды в оркестраторе

У нас есть оркестратор, который вызывается триггером таймера каждую минуту. В оркестраторе есть несколько триггеров действий, вызываемых в механизме цепочки функций. Однако был один случай, когда каждый триггер активности вызывался дважды с разницей во времени всего в 7 миллисекунд. Я предполагаю, что когда был вызван 1-й триггер активности, контрольная точка была отложена, хотя процесс выполнил свою работу, поэтому, когда оркестратор перезапустился, он снова выполнил 1-й триггер активности, поскольку не нашел данных в очереди хранилища Azure. . Может ли кто-нибудь подтвердить, так ли это, или есть какая-то проблема с поведением триггера активности?


person Divya Poojari    schedule 07.10.2019    source источник
comment
Любое обновление сейчас? Если это поможет вам, примите его как ответ. (Нажмите на галочку рядом с ответом, чтобы переключить его с серого на заполненный.)   -  person Joey Cai    schedule 25.10.2019


Ответы (1)


Это поведение оркестратора при воспроизведении, которое вы наблюдаете. Если функция оркестратора создает сообщения журнала, поведение воспроизведения может привести к созданию повторяющихся сообщений журнала. Это нормально и задумано. Ознакомьтесь с этой документацией. за дополнительной информацией.

Когда функция оркестрации получает дополнительную работу, оркестратор просыпается и повторно выполняет всю функцию с самого начала, чтобы восстановить локальное состояние. Если во время воспроизведения код пытается вызвать функцию (или выполнить любую другую асинхронную работу), платформа устойчивых задач обращается к истории выполнения текущей оркестровки. Если он обнаруживает, что функция действия уже выполнена и дала результат, он воспроизводит результат этой функции, а код оркестратора продолжает выполняться. Воспроизведение продолжается до тех пор, пока код функции не будет завершен или пока не будет запланирована новая асинхронная работа.

person Joey Cai    schedule 22.10.2019