Требуется, чтобы веб-задания Azure поддерживали состояние выполнения (выполняется или остановлено) после публикации веб-приложения.

Я развертываю веб-приложение и различные связанные (непрерывные) веб-задания в Azure с помощью Visual Studio 2015. До недавнего времени я наблюдал, что после процесса развертывания веб-задания сохраняли свое состояние; если задание было запущено, оно будет перезапущено при изменении кода. Если задание было остановлено, код обновится, и веб-задание останется в состоянии «Остановлено».

Поведение, которое я сейчас наблюдаю, заключается в том, что остановленные веб-задания запускаются после развертывания. Это не то поведение, которое я хочу, так как работа останавливается по какой-то причине. Тот факт, что я публикую новую версию кода веб-приложения и / или кода веб-задания, не следует рассматривать как предположение фреймворка о том, что рабочее состояние веб-заданий должно быть изменено.

Можно ли управлять этим поведением?


person Matthew    schedule 22.02.2017    source источник


Ответы (2)


Амит Apple дал отличный ответ на этот вопрос здесь.

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

Я быстро просмотрел репозиторий Kudu, и похоже, что он все еще в силе. Однако на самом деле этого нет в документации Kudu.

person Rob Reagan    schedule 22.02.2017
comment
Ty. Я тоже это видел. Проблема в том, что я хочу, чтобы состояние выполнения веб-задания оставалось таким же после развертывания; если он остановился, оставьте его остановленным; если он работает, продолжайте работать. Я мог бы поклясться, что такое поведение (когда работа начинается, если она остановлена) началось со мной недавно ... - person Matthew; 22.02.2017

Из private bool IsDisabled { get { return OperationManager.Attempt(() => FileSystemHelpers.FileExists(_disableFilePath) || Settings.IsWebJobsStopped()); } }

Как я знаю, для непрерывных веб-заданий у нас есть следующие подходы к их прекращению.

1) Войдите на портал Azure, в колонке «НАСТРОЙКИ> Параметры приложения» добавьте новый параметр WEBJOBS_STOPPED и установите значение 1.

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

2) Добавьте файл с именем disable.job в корень двоичных файлов WebJob.

Вы можете войти на портал Azure в колонке «НАСТРОЙКИ> Веб-задания» своего веб-приложения, выбрать свое веб-задание и нажать «Остановить». Кроме того, вы можете добавить этот файл вручную. Программным способом вы можете использовать WebJobs API с базовой аутентификацией, используя Учетные данные для развертывания вашего веб-приложения для запуска / остановки вашего веб-задания.

Поведение, которое я сейчас наблюдаю, заключается в том, что остановленные веб-задания запускаются после развертывания. Я не хочу этого поведения, поскольку работа останавливается по какой-то причине.

Для непрерывных веб-заданий я протестировал эту проблему и обнаружил, что веб-задания сохранят свое состояние (остановлено / запущено) после того, как я опубликовал свое веб-приложение или веб-задание. Таким образом, проверьте, как остановить непрерывные веб-задания, и вы можете создать новое веб-задание, чтобы изолировать эту проблему.

person Bruce Chen    schedule 23.02.2017
comment
Спасибо за ваш ответ. Что-то мне непонятно. Вы сказали: «Для непрерывных веб-заданий я протестировал эту проблему и обнаружил, что веб-задания сохранят свое состояние (остановлено / запущено) после того, как я опубликовал свое веб-приложение или веб-задание. Таким образом, проверьте, как остановить непрерывные веб-задания, и вы можете создать новое веб-задание, чтобы изолировать эту проблему. Уточните, какие изменения конфигурации вы внесли, что позволило веб-заданиям сохранить свое состояние после публикации. Или вы говорите, что это поведение по умолчанию, которое вы испытали? - person Matthew; 02.03.2017
comment
Я имею в виду, что если я остановлю / начну свои непрерывные веб-задания с помощью вышеуказанных подходов, то мои веб-задания сохранят свое состояние после публикации без изменения какой-либо конфигурации. - person Bruce Chen; 03.03.2017