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

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

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

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

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

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

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

1 ответ

Решение

Разобрался с некоторыми экспериментами.

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

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

Другие вопросы по тегам