一個(gè)worker是否可以消費(fèi)多個(gè)隊(duì)列
目前這樣寫好像有問題,遇到了死鎖問題。
demo里邊只有監(jiān)聽一個(gè)隊(duì)列,consume是否是阻塞進(jìn)程。
請教監(jiān)聽多個(gè)隊(duì)列應(yīng)該怎么處理,是需要開啟多個(gè)worker,然后不同worker監(jiān)聽不同隊(duì)列嗎?
使用的是這個(gè)庫 https://github.com/walkor/rabbitmq
目測這個(gè)客戶端是非阻塞的客戶端,不會(huì)阻塞進(jìn)程。是否阻塞運(yùn)行 php start.php status 看下就知道了,如果消費(fèi)者是busy就是阻塞的。
感覺應(yīng)該可以一個(gè)客戶端訂閱多個(gè)消息,如果不行就建立多個(gè)客戶端唄,沒必要一個(gè)隊(duì)列開一個(gè)worker。
foreach ($subjects as $subject) {
(new Client())->connect()->then(function (Client $client) {
return $client->channel();
})->then(function (Channel $channel) {
$channel->consume(.....);
});
}