РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1363 of 1392 menu

Атрибут timeout

Атрибут timeout класса Job позволяет ограничить время выполнения задания в очереди. Если задание не завершится в течение указанного времени, оно будет помечено как неудачное и, при необходимости, повторно поставлено в очередь. Атрибут применяется непосредственно к классу задания и принимает целочисленное значение в секундах.

Синтаксис

<?php class MyJob implements ShouldQueue { public $timeout = 30; } ?>

Пример

Давайте создадим задание, которое должно выполниться за 10 секунд:

<?php namespace AppJobs; use IlluminateContractsQueueShouldQueue; class QuickJob implements ShouldQueue { public $timeout = 10; public function handle() { sleep(5); echo "Job completed successfully"; } } ?>

Результат выполнения кода:

"Job completed successfully"

Пример

Давайте создадим задание, которое превышает лимит времени выполнения:

<?php namespace AppJobs; use IlluminateContractsQueueShouldQueue; class SlowJob implements ShouldQueue { public $timeout = 3; public $tries = 2; public function handle() { sleep(5); echo "This will not be executed"; } } ?>

Результат выполнения кода:

"Job failed due to timeout"

Пример

Давайте используем атрибут timeout с динамическим расчетом времени:

<?php namespace AppJobs; use IlluminateContractsQueueShouldQueue; class DynamicTimeoutJob implements ShouldQueue { public $timeout; public function __construct($timeout) { $this->timeout = $timeout; } public function handle() { echo "Executing with timeout: " . $this->timeout; } } ?>

Результат выполнения кода:

"Executing with timeout: 45"

Смотрите также

  • атрибут tries,
    который определяет количество попыток выполнения задания
  • атрибут backoff,
    который задает задержку между повторными попытками
  • атрибут maxExceptions,
    который ограничивает количество исключений до сбоя
  • метод handle,
    который содержит логику выполнения задания
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить