Azure WebJob имеет статус «Никогда не завершен» на панели инструментов WebJobs - PullRequest
0 голосов
/ 09 мая 2018

У меня давно работает веб-работа в AppService (около 1 часа). В AppService включено «Всегда включено».

Инициализируется с:

var host = new JobHost(config);
host.Call(typeof(Functions).GetMethod("SyncUsers"));
host.Start();

Актуальные методы SyncUsers с атрибутами:

[Timeout("00:59:00", ThrowOnTimeout = true)]
[NoAutomaticTrigger]

Расписание устанавливается с помощью файла настроек settings.job:

{
  "is_singleton": true,
  "schedule": "0 0 */4 * * *"
}

Основная проблема заключается в том, что в инструментальной панели WebJobs я вижу статус «Никогда не завершен» в 90% случаев (или произошел сбой за исключением - ситуация ОК). Время выполнения таких заданий разное: от 5 минут до 30 минут. Журналы просто остановились в какой-то момент без каких-либо исключений или подробных сообщений.

Другое дело, что я вижу, что одновременно выполняется несколько заданий. Похоже, синглтон и расписание не работают (поскольку работа должна выполняться каждые 4 часа). Также некоторые задания с таким статусом отображаются без времени выполнения, например: «1 час назад (время выполнения)», и я не могу просматривать журналы или загружать их.

У кого-нибудь был такой опыт?

Спасибо

1 Ответ

0 голосов
/ 09 мая 2018

Похоже, вы пытаетесь запустить исполняемый файл, который никогда не заканчивается как запущенный WebJob, у которого нет шансов на работу. Вам нужно либо:

  1. Используйте непрерывный WebJob и положитесь на WebJobs SDK для своего таймера
  2. Используйте простое консольное приложение, развернутое как запланированная веб-работа. Нет необходимости использовать SDK здесь. Просто сделайте то, что вам нужно, с помощью функции Main () и дайте ей закончиться.

Я бы предложил # 2, если у вас нет особой необходимости использовать WebJobs SDK.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...