Триггер активности вызывается дважды в оркестраторе - PullRequest
0 голосов
/ 07 октября 2019

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

1 Ответ

0 голосов
/ 22 октября 2019

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

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

...