前幾天在群里看到一個兄弟的項目里,app/queue/redis目錄下有幾十個隊列文件,想了解下業(yè)務中是否可以無限制的創(chuàng)建隊列?有沒有什么講究?
隊列數(shù)量理論上沒有講究,但實際情況和你架構設計有關,幾十個隊列文件和幾十個model很類似,沒什么太大影響,如果用的習慣的話,有些人也喜歡單隊列多業(yè)務復用,有些也喜歡單業(yè)務單隊列,習慣不同罷了; 隊列多了無非對應的消費者進程會多一些而已
隊列多了無非對應的消費者進程會多一些 是不是可以這樣理解:有N個文件,就會相應的創(chuàng)建N*count個進程(count為config\plugin\webman\redis-queue\process中配置的消費者進程數(shù))?
是的,但是這也是有好處的,代碼可見,你也明確能從代碼中知道你創(chuàng)建了多少個隊列
進程數(shù)就是count,和文件數(shù)沒關系,它一個進程可以消費多個類型的消息,不會產(chǎn)生N*count個進程,只有count個進程
如果想給每個隊列文件自定義配置進程數(shù) 應該怎么寫
你問的這些文檔都有寫
count 對應消費文件目錄 把單獨消費的文件 放到一個目錄下 配置count
懂了多謝
@damao 他的意思是一個文件對應一個隊列,一個隊列對應多個count的消費進程,每個隊列都對應各自不同的業(yè)務或者消息類型
app_path() . '/queue/redis/fast'目錄下 不管創(chuàng)建多少個隊列文件 都只會啟動cpu_count() * 2個進程 是這樣的對吧
是這個意思