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