2017-01-04 8 views
1

У меня есть Azure Scheduled Web Job на Azure WebApp. Внутри веб-задания он загружает файл excel из azure blob и считывает (25 - 30 k записей в файл), затем он перебирает цикл для вставки записей в базу данных. Теперь, когда мы планируем (время расписания: 18 часов), первое задание успешно выполнялось и обрабатывало все записи из файла без каких-либо перерывов (между этим сайтом был доступ). Но, в следующий раз, когда он не сработает (Aborted) без какой-либо причины (ни один из пользователей не был доступен на сайте. Может находиться в состоянии ожидания).Длительный запланированный WebJob Aborted by Azure

WebJob Abort Status

Там нет каких-либо указаний, когда я посмотрел на бревна. Однако первое расписание прошло успешно и показывает статус успеха, после чего все находятся в состоянии «Прервано», «Почему»?

Success

Также сделано с ниже настройками: веб-приложение

stopping_wait_time - 3600
WEBJOBS_IDLE_TIMEOUT - 3600
SCM_COMMAND_IDLE_TIMEOUT - 121

+0

У вас есть ** Always On ** включен для сайта, на котором размещен WebJob? Если на сайте нет трафика на 20 минут или около того, пул приложений, в котором размещен WebJob, может быть выгружен. – evilSnobu

+0

Нет, поскольку я использую подписку MS Network Partner, нет возможности включить ее. Тем не менее, webjob работает во время использования сайта или доступа к кому-либо. – HarshalY

+0

Настройка привязана к уровню цен, который вы используете не для типа подписки. Вам обязательно нужно включить это On, чтобы сделать это надежным. – evilSnobu

ответ

2

Per Azure's documentation,

Always On. По умолчанию веб-приложения выгружаются, если они неактивны для некоторого периода времени . Это позволяет системе экономить ресурсы. В Basic или В стандартном режиме вы можете включить Always On, чтобы приложение загрузило все время . Если ваше приложение запускает непрерывные веб-задания, вы должны включить Always Вкл., Или веб-задания могут не работать надежно.

Таким образом, у Azure Web Apps нет обещаний продолжать работу более 20 минут. Если вам нужно полагаться на это, вам необходимо включить Always On. Чтобы включить его. Смотри ниже.

  1. В Azure Portal перейдите в службу поддержки приложений.
  2. Нажмите Настройки приложения в меню НАСТРОЙКИ.
  3. Поверните Always On на, а затем нажмите Сохранить.

Здесь картина:

enter image description here

Если вы используете бесплатный ярус Azure, возможно, эта нить поможет вам: How can I keep my Azure WebJob running without "Always On".

+0

Чен Я не хочу идти с функцией Always On, ссылка, которую вы предоставили, похоже, собирается перезапустить веб-сайты, а также webjob, но снова перезапустить webjob, что не имеет смысла для меня, потому что мне приходится обрабатывать тысячи записей через webjob, работает минимум 8-10 часов. – HarshalY