关于 Redis 队列消费进程的理解问题

ekil

问题描述

关于 Redis 队列消费进程的理解问题

这是文档里的说明

提示
虽然消费者支持多服务器多进程,但是一个消息只会有一台服务器的一个进程进行消费,不会出现多台服务器或多个进程同时消费一个消息的情况。消费过的消息会自动从队列删除,无需手动删除。

提示
消费进程可以同时消费多种不同的队列,新增队列不需要修改process.php中的配置,新增队列消费者时只需要在app/queue/redis下新增对应的Consumer类即可,并用类属性$queue指定要消费的队列名

如果在 app/queue/redis 目录下有8个队列,假设每个队列都是繁忙状态 ( 刚好在没有队列任务积压临界值 ),是不是可以理解为,process.php 设置里开设8个进程是最简单粗暴的办法。

按照文档的上解释 一个消息只会有一台服务器的一个进程进行消费,就算开了16个进程,实际上也就8个进程在处理

372 1 0
1个回答

TM

16个进程不就是16个同时消费吗,谁空闲谁就消费

  • ekil 2024-01-09

    一个消息只会有一台服务器的一个进程进行消费,8个队列 最多同时就8个进程消费吧

  • rbb 2024-01-16

    你所谓的8个队列?没有这种定义吧,只有8个消费进程一说。N个消费进程竞争,只有拿到消息的进程就会消费。

🔝