2015-08-25 2 views
0

Мы выполняем непрерывные веб-задания в рамках WebApp, который установлен в AlwaysOn.Как именно Azure останавливает работу в Интернете?

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

На портале управления Azure (manage.windowsazure.com) я «остановил» задание и перезапустил WebApp, но работа все еще работает. Как именно Azure останавливает/убивает работу?

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

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

+0

Возможный дубликат [Изящное завершение Azure WebJobs] (http://stackoverflow.com/questions/22429769/graceful-shutdown-of-azure-webjobs) – Anton

+0

@Anton Хотя это похоже, это не тот же вопрос , Я спросил *, как Azure останавливает работу, но этот вопрос и ответы от Amit, одного из разработчиков Kudu, помогли прояснить. Я отправляю свои выводы в качестве ответа. – makhdumi

ответ

0

(частичный) ответить на мой вопрос о том, как именно Azure останавливает рабочие места могут быть найдены в kudu source:

private bool IsDisabled 
    { 
     get { return FileSystemHelpers.FileExists(_disableFilePath) || Settings.IsWebJobsStopped(); } 
    } 

Так как если disable.job существует, или WEBJOBS_STOPPED устанавливается в настройках приложения.

Я уже знал об этом, и в нашем конкретном случае это не помогло. Оказалось, что рабочие места были запущены на смену (и также остановились !!) этап окружающая среда. Задания будут работать в промежуточной среде, даже после остановки слота. Для меня это серьезная ошибка с Azure, но никто, кажется, не признает ее как проблему.

Смежные вопросы