Laravel 8 Redis
要使用 redis
队列驱动程序,需要在 config/database.php
配置文件中配置一个 redis 数据库连接。
Redis 集群
如果你的 Redis
队列连接使用一个 Redis
集群,那么你的队列名称就必须包含一个 key hash tag。这是为了确保一个给定队列的所有 Redis
键都被放在同一个哈希插槽:
'redis' => [
'driver' => 'redis',
'connection' => 'default',
'queue' => '{default}',
'retry_after' => 90,
],
阻塞
在使用 Redis 队列时,您可以使用 block_for
配置选项来指定在遍历 worker 循环和重新轮询 Redis 数据库之前,驱动程序需要等待多长时间才能使任务变得可用。
根据您的队列负载调整此值要比连续轮询 Redis 数据库中的新任务更加有效。例如,您可以将值设置为 5
,以指示驱动程序在等待任务变得可用时应该阻塞 5 秒:
'redis' => [
'driver' => 'redis',
'connection' => 'default',
'queue' => 'default',
'retry_after' => 90,
'block_for' => 5,
],
注意:将
block_for
设置为0
将导致队列workers
一直阻塞,直到某一个任务变得可用。这还能防止在下一个任务被处理之前处理诸如SIGTERM
之类的信号。