关于 Redis 队列消费进程的理解问题
这是文档里的说明
提示
虽然消费者支持多服务器多进程,但是一个消息只会有一台服务器的一个进程进行消费,
不会出现多台服务器或多个进程同时消费一个消息的情况。
消费过的消息会自动从队列删除,无需手动删除。
提示
消费进程可以同时消费多种不同的队列,新增队列不需要修改process.php中的配置,
新增队列消费者时只需要在app/queue/redis下新增对应的Consumer类即可,
并用类属性$queue指定要消费的队列名
如果在 app/queue/redis
目录下有8个队列,假设每个队列都是繁忙状态 ( 刚好在没有队列任务积压临界值 ),是不是可以理解为,process.php
设置里开设8个进程是最简单粗暴的办法。
按照文档的上解释 一个消息只会有一台服务器的一个进程进行消费
,就算开了16个进程,实际上也就8个进程在处理
16个进程不就是16个同时消费吗,谁空闲谁就消费
一个消息只会有一台服务器的一个进程进行消费,8个队列 最多同时就8个进程消费吧
你所谓的8个队列?没有这种定义吧,只有8个消费进程一说。N个消费进程竞争,只有拿到消息的进程就会消费。