У меня есть долгосрочное триггерное веб-задание, размещенное в Azure, которое запускается один раз в день. В большинстве случаев он успешно обрабатывается со временем выполнения около часа, но время от времени я получаю статус Aborted в Kudu со временем выполнения «менее 1 мс». На самом деле задание продолжает выполняться, как я вижу, появляются следы AppInsights, но по какой-то причине Куду сразу помечает его как Прерванное.
Для Always On установлено значение true в настройках приложения-службы, и на нем размещается множество других заданий, которые не страдают от такой проблемы.
Не могли бы вы объяснить, что может быть причиной такого поведения и как я могу решить эту проблему?
@GeorgeChen нет журналов ошибок, он просто меняет статус на «Выполняется», затем показывает путь к exe, и все. Он даже не регистрирует, что в конечном итоге он был прерван.
Если вы уже включили функцию «Всегда включено», это может быть связано с тем, что длительное задание может выполняться в фоновом режиме, но SCM не знает об этом.
Таким образом, в этом случае вы можете установить WEBJOBS_IDLE_TIMEOUT
(в основном этого достаточно) и/или SCM_COMMAND_IDLE_TIMEOUT
(просто установите их оба) на высокое значение в настройках службы приложений. Это время в секундах, по истечении которого Куду уничтожит веб-задание, которое не получало никаких запросов или выходных данных за указанный период времени. Вы можете обратиться к этому документ.
Я установил более высокое значение, но я действительно не знаю, изменило ли это что-нибудь. Во всяком случае, логи за последнюю неделю отображались корректно. Интересно, что-то случилось или мне просто повезло.
Вы проверяли журнал, есть ли сообщения об ошибках?