Laravel&Redis-尽管超时设置为1800s,但10分钟后仍被杀死

时间:2018-12-01 07:09:20

标签: laravel redis

我在laravel应用程序上使用多个Redis队列来管理重复发生的任务。

一切正常,除了被推送到通常运行时间超过10分钟的队列中的工作-大约9-15分钟。

在Laravel Forge上,我在Redis队列上创建了一个新的工作器,超时为1800,但是仍然运行了超过10分钟的作业。 10分钟以内的作业按预期工作。

我缺少任何配置吗?

1 个答案:

答案 0 :(得分:1)

您应该在config / queue.php中将retry_after值设置为1800。

您可以创建多个使用相同连接的Redis队列,然后将作业分派到指定的队列中。

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');