Можно ли запустить длительную задачу (синхронно) в методе OnStart() в веб-роли облачной службы Azure?

Существует некоторая работа по инициализации (она занимает около ‹ = 10 минут), которую необходимо выполнить, прежде чем веб-роль начнет принимать запросы. Итак, мой вопрос: «Есть ли какие-либо ограничения в методе OnStart ()»? Будет ли веб-роль перезапущена между ними?


person coder    schedule 02.06.2018    source источник


Ответы (1)


Есть ли ограничения в методе OnStart()?

Кажется, в OnStart()< нет никаких ограничений. /а> метод. Если метод OnStart возвращает false, экземпляр роли немедленно останавливается. Если метод возвращает true, Windows Azure запускает роль, вызывая метод Run. Как правило, следует избегать возврата значения false из метода OnStart.

Будет ли веб-роль перезапущена между ними?

Если в одном из методов жизненного цикла возникает исключение, Azure вызовет событие UnhandledException, после чего процесс будет завершен. После того как ваша роль будет переведена в автономный режим, она будет перезапущена Azure. Поэтому вам следует избегать UnhandledException в методе.

Для получения более подробной информации вы можете обратиться к статьям.

  1. Настройка жизненного цикла веб-сайта или рабочего процесса роль в .NET
  2. Роль генерирует необработанные исключения при инициализации или остановке
person Joy Wang    schedule 04.06.2018
comment
Спасибо за ответ. Я попробовал синхронизировать сон в течение 1 часа и не увидел, что роль запускается. Таким образом, похоже, что нет никаких ограничений на то, как долго операции могут выполняться синхронно в методе OnStart(). - person coder; 12.06.2018