Как предотвратить запуск Azure WebJob после публикации?
У нас есть настройка Azure Website с "промежуточным" слотом для развертывания, и мы используем непрерывный Azure WebJob для обработки длинных фоновых заданий. Похоже, что когда вы публикуете на Веб-сайте (и включаете двоичные файлы WebJob), WebJob перезапустится, если он был ранее остановлен.
Наш текущий процесс развертывания выглядит следующим образом:
- Развертывание для STAGING
- Немедленно и быстро остановите WebJob.
STAGING (попробуйте запретить обработке 2 сообщений WebJobs)
- Smoke test и проверьте код при выполнении операций STAGING
- Остановите веб-приложение ПРОДУКЦИЯ (пусть он сбрасывает сообщения о очереди)
- Обмен между ПРОИЗВОДСТВОМ И СТАГИРОВАНИЕМ
- Запустите Producation WebJob (который был только STAGING WebJob).
Есть ли трюк (скажем, файл флага или что-то еще), чтобы сообщить WebJob НЕ запускать после публикации?
Ответы
Ответ 1
Чтобы развернуть непрерывный WebJob в остановленном состоянии, просто добавьте файл с именем disable.job
в корень вашего WebJob (двоичные файлы), это покажет инфраструктуре, что веб-приложение в настоящее время остановлено.
Чтобы просмотреть это поведение, вы можете просто остановить непрерывный WebJob и увидеть, что этот файл сгенерирован и помещен в каталог WebJob.
Ответ 2
Вы можете добавить параметр приложения WEBJOBS_STOPPED
в свой промежуточный сегмент и установить его на 1
. Сделайте этот параметр "Слот", чтобы он не был заменен производством.
Ответ 3
AFAIK, для этого нет готового решения. Однако вы можете установить параметр приложения и проверить код webjob, когда он начнется. Кроме того, вы можете использовать переменную HTTP_HOST
для определения среды.