В соответствии с документами Laravel я могу указать задание задания c timeout:
Если для задания указано время ожидания, оно будет иметь приоритет над любым указанным временем ожидания в командной строке [...]
Итак, когда я запускаю artisan queue:listen
без опции --timeout
, и я определяю время ожидания внутри задания (как подсказывает мне Laravel):
public $timeout = 600;
Я ожидаю, что время ожидания указанного задания c составит 600 секунд. К сожалению, я все еще получаю ProcessTimedOutException
. Пользовательский таймаут работает только тогда, когда я запускаю очередь с --timeout=600
.
Я использую Laravel 6 с PHP 7.4. В соответствии с рекомендациями Laravel я также включил расширение pcntl
PHP. Для очереди я использую драйвер database
со следующей конфигурацией:
'database' => [
'driver' => 'database',
'table' => 'jobs',
'queue' => 'default',
'retry_after' => 90,
]