Каков тайм-аут по умолчанию для заданий пакета SDK для веб-заданий Azure?

Я использую пакет SDK для веб-заданий Azure (версия 2.0). Например, каков тайм-аут по умолчанию для метода, украшенного QueueTrigger. Это работает в веб-приложении со стандартным (S1) планом службы приложений.

public class Functions
{
    public static void HandleMessage(
        [QueueTrigger("my-queue")] string message,
        TextWriter log
    )
    {
        // Long running process
        ...

Если предположить, что для естественного выполнения этого метода потребуется очень много времени, как долго он будет работать, пока Azure не откажется от работы и не прекратит выполнение?


person Sean    schedule 25.04.2017    source источник
comment
Под таймаутом выполнения вы имеете в виду, как долго может запускаться метод, запускаемый сообщением, до тех пор, пока Azure не прекратит выполнение, интервал опроса QueueTrigger или как долго WebJob будет продолжать прослушивать очередь без активности до того, как задание будет выгружено если не указан Always On?   -  person Rob Reagan    schedule 26.04.2017
comment
@RobReagan - Отредактировал вопрос, чтобы прояснить. Спасибо!   -  person Sean    schedule 26.04.2017


Ответы (1)


Насколько я понимаю, функция WebJob будет работать бесконечно или до тех пор, пока не произойдет одно из следующих событий:

  • Если вы отметили метод веб-задания с помощью TimeoutAttribute, и указанный период тайм-аута истек. Затем будет выброшено исключение FunctionTimeoutException.
  • Метод генерирует исключение, которое останавливает выполнение.
  • Вы не оплачиваете счет за Azure, и Microsoft приостанавливает действие вашей учетной записи.
  • Вселенная умирает тепловой смертью.

Я не могу найти упоминания об ограничении времени выполнения функции по умолчанию, и у меня было несколько методов, которые работали довольно долгое время. Пакет SDK WebJobs имеет открытый исходный код, и вы можете просмотреть его здесь.

person Rob Reagan    schedule 26.04.2017
comment
Также, если вы добавляете сообщение, которое идентично уже запущенному, оно остановит то, которое выполняется, с сообщением Обнаружено новое сообщение в очереди. - person Rob Sedgwick; 11.01.2019
comment
Если базовая виртуальная машина, на которой размещен процесс, выйдет из строя, веб-задание также остановится. Вот почему также важна отказоустойчивость. - person Chris Pietschmann; 13.03.2019