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