Azure WebJobs - запускать первым, только если второй не запущен

У меня есть 2 веб-задания, запускаемых лазурью (временные триггеры), но я хочу быть уверенным, что запущено только одно. Итак, первый должен подождать, если второй работает, и наоборот. Я не хочу объединять оба веб-задания в одно (оно разработано и поддерживается разными разработчиками), я просто хочу быть уверенным, что выполняется только одно. Как это сделать?

1 ответ

Решение

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

Мои два цента
Это похоже на неоптимальный дизайн. В чем причина нежелания одновременного запуска двух веб-заданий? Если основная причина в том, что WJ2 зависит от WJ1, пусть WJ1 отправит сообщение в очередь для запуска WJ2. Таким образом, вы будете уверены, что WJ2 будет работать только после запуска WJ1.

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