我在我的 laravel 应用程序上使用多个 redis 队列来管理重复发生的任务。
除了推送到队列的作业通常运行时间超过 10 分钟 - 大约 9-15 分钟外,一切正常。
在 Laravel forge 上,我在超时为 1800 的 redis 队列上创建了一个新工作程序,但运行时间超过 10 分钟的作业仍然被终止。不到 10 分钟的作业会按预期工作。
是否缺少任何配置?
最佳答案
您应该在 config/queue.php 中将 retry_after 值设置为 1800。
您可以创建多个使用相同连接的 Redis 队列,并在指定的队列上调度您的作业。
队列.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');
关于Laravel 和 Redis - 尽管超时设置为 1800 秒,但 10 分钟后作业被终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53568610/