我在laravel应用程序上使用多个Redis队列来管理重复发生的任务。
一切正常,除了被推送到通常运行时间超过10分钟的队列中的工作-大约9-15分钟。
在Laravel Forge上,我在Redis队列上创建了一个新的工作器,超时为1800,但是仍然运行了超过10分钟的作业。 10分钟以内的作业按预期工作。
我缺少任何配置吗?
答案 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');