Laravel & Redis - работа была убита через 10 минут, несмотря на то, что тайм-аут установлен на 1800 - PullRequest
0 голосов
/ 01 декабря 2018

Я использую несколько очередей redis в приложении laravel для управления повторяющимися задачами.

Все работает нормально, за исключением заданий, которые помещаются в очередь, которая обычно выполняется дольше 10 минут - около 9-15 минут.

В Laravel Forge я создал нового работника в очереди redis с тайм-аутом 1800, но работа, продолжающаяся более 10 минут, была прервана.Задания до 10 минут работают как положено.

Есть ли какая-то конфигурация, которую мне не хватает?

1 Ответ

0 голосов
/ 01 декабря 2018

Вам следует установить значение retry_after равным 1800 в config / queue.php.

Вы можете создать несколько очередей повторной отправки, использующих одно и то же соединение, и отправить свою работу в указанную очередь.

queue.php:

'redis' => [
    'connection' => env('QUEUE_REDIS_CONNECTION'),
    'driver' => 'redis',
    'queue'  => 'default',
    'retry_after => 60
],
'redis_low' => [
    'connection' => env('QUEUE_REDIS_CONNECTION'),
    'driver' => 'redis',
    'queue'  => 'email',
    'retry_after => 1800
]

В вашей работе:

Job::dispatch()->onQueue('email');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...