Как предотвратить запуск Azure WebJob после публикации?

У нас есть настройка веб-сайта Azure с "промежуточным" местом для развертывания, и мы используем непрерывную веб-работу Azure для обработки длительных фоновых заданий. Похоже, что когда вы публикуете на Веб-сайте (и включаете двоичные файлы WebJob), WebJob перезапустится сам, если он был ранее остановлен.

Наш текущий процесс развертывания выглядит следующим образом:

  1. Развернуть в STAGING
  2. Немедленно и быстро остановите WebJob на STAGING (попытайтесь запретить 2 WebJobs обрабатывать сообщения)
  3. Тест дыма и проверка кода на STAGING работает
  4. Остановите ПРОИЗВОДСТВЕННЫЙ WebJob (пусть он истощает очереди сообщений)
  5. Поменять местами ПРОИЗВОДСТВО и ЭТАП
  6. Запустите ПРОИЗВОДСТВЕННЫЙ WebJob (который был просто STAGING WebJob)

Есть ли хитрость (скажем, файл флага или что-то в этом роде), чтобы запретить WebJob запускаться после публикации?

3 ответа

Решение

Чтобы развернуть непрерывный WebJob в остановленном состоянии, просто добавьте файл с именем disable.job в корне вашего WebJob (двоичные файлы), это сообщит платформе, что WebJob в настоящее время остановлен.

Чтобы просмотреть это поведение, вы можете просто остановить непрерывный WebJob и увидеть, что этот файл создан и помещен в каталог WebJob.

Вы можете добавить настройки приложения WEBJOBS_STOPPED в ваш промежуточный слот и установите его в 1, Сделайте эту настройку "Slot Setting", чтобы она не менялась при производстве.

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

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