webman redis-queue创建队列数量多少是否有讲究?

workers

前几天在群里看到一个兄弟的项目里,app/queue/redis目录下有几十个队列文件,想了解下业务中是否可以无限制的创建队列?有没有什么讲究?

619 2 0
2个回答

chaz6chez

队列数量理论上没有讲究,但实际情况和你架构设计有关,几十个队列文件和几十个model很类似,没什么太大影响,如果用的习惯的话,有些人也喜欢单队列多业务复用,有些也喜欢单业务单队列,习惯不同罢了;
队列多了无非对应的消费者进程会多一些而已

  • workers 2023-06-19

    队列多了无非对应的消费者进程会多一些 是不是可以这样理解:有N个文件,就会相应的创建N*count个进程(count为config\plugin\webman\redis-queue\process中配置的消费者进程数)?

  • chaz6chez 2023-06-19

    是的,但是这也是有好处的,代码可见,你也明确能从代码中知道你创建了多少个队列

  • damao 2023-06-19

    进程数就是count,和文件数没关系,它一个进程可以消费多个类型的消息,不会产生N*count个进程,只有count个进程

  • workers 2023-06-19

    如果想给每个队列文件自定义配置进程数 应该怎么写

  • damao 2023-06-19

    你问的这些文档都有写

  • Gin 2023-06-19

    count 对应消费文件目录 把单独消费的文件 放到一个目录下 配置count

  • workers 2023-06-19

    懂了多谢

  • chaz6chez 2023-06-19

    @damao 他的意思是一个文件对应一个队列,一个队列对应多个count的消费进程,每个队列都对应各自不同的业务或者消息类型

workers

截图
app_path() . '/queue/redis/fast'目录下 不管创建多少个队列文件
都只会启动cpu_count() * 2个进程
是这样的对吧

🔝