Azure WebJob: я вызываю хранимую процедуру сервера sql из веб-задания

Мне нужно запустить хранимую процедуру из лазурного веб-задания в непрерывном режиме. Я написал код на С# и развернул его в своей среде разработки.

После мониторинга в течение 3 или 4 дней я обнаружил, что веб-задания прерываются, если хранимая процедура выполняется в течение длительного времени. Моя процедура занимает около 50 секунд, чтобы вернуть вывод. Пока работа прерывается к тому времени.

Он отлично работает, если процедура хранения возвращает данные быстро. Если данных больше, а процедура требует времени, я прерываюсь. Но в моем случае я хочу, чтобы работа настраивалась до тех пор, пока процедура не вернет данные.

Я не могу понять это.

Я пробовал следующие варианты

  1. Включение всегда включено
  2. stop_wait_time : 300

Есть какие-нибудь предложения.?


person Abhijeet Sinha    schedule 01.08.2020    source источник
comment
Ваша проблема решена?   -  person Jason Pan    schedule 07.08.2020


Ответы (1)


Вы можете использовать приведенный ниже код, чтобы установить период ожидания для решения вашей проблемы. Для получения дополнительной информации вы можете увидеть этот пост об асинхронном ожидании завершения задачи. с тайм-аутом. Вы также можете выбрать другой код для реализации.

int timeout = 1000;
var task = SomeOperationAsync();
if (await Task.WhenAny(task, Task.Delay(timeout)) == task) {
    // task completed within timeout
} else { 
    // timeout logic
}

Из-за того, что ваше веб-задание Azure работает в непрерывном режиме, вы не можете использовать параметр WEBJOBS_IDLE_TIMEOUT. Но ваши веб-задания всегда будут включены, вы также можете установить WEBJOBS_RESTART_TIME для повторного запуска.

введите здесь описание изображения

person Jason Pan    schedule 04.08.2020