Выполнение Azure WebJob QueueTrigger

Я запускаю несколько одновременных экземпляров QueueTrigger в веб-задании Azure. Это одна функция, но вызываемая несколько раз параллельно.

Моя функция использует статические переменные для кэширования данных, которые используются несколько раз.

Иногда, когда функции запускаются, у меня возникают коллизии со статическими объектами, которые можно объяснить только тем, что несколько процессов пытаются получить к ним доступ одновременно, но я пришел к выводу, что каждый экземпляр триггера очереди выполняется изолированно.

Итак, мои вопросы;

Выполняются ли экземпляры queuetrigger изолированно?

Если нет, существует ли конкретное событие, которое запускается при загрузке «экземпляра», чтобы можно было загружать статические объекты?


person Tony Cheetham    schedule 25.09.2018    source источник


Ответы (1)


Выяснил это путем некоторых экспериментов.

Экземпляры QueueTrigger запускаются как часть процесса, внутри которого выполняется веб-задание, и не выполняются изолированно.

Веб-задания автоматически закрываются, если им не приказано оставаться открытыми, и все статические данные будут потеряны. Это может привести к запутанному поведению, но так задумано.

person Tony Cheetham    schedule 27.09.2018