workman使用rabbitmq消费队列时遇到问题

ani

一个worker是否可以消费多个队列
截图
目前这样写好像有问题,遇到了死锁问题。
demo里边只有监听一个队列,consume是否是阻塞进程。
请教监听多个队列应该怎么处理,是需要开启多个worker,然后不同worker监听不同队列吗?
使用的是这个库 https://github.com/walkor/rabbitmq

阅读 140
1个回答

six

目测这个客户端是非阻塞的客户端,不会阻塞进程。是否阻塞运行 php start.php status 看下就知道了,如果消费者是busy就是阻塞的。

感觉应该可以一个客户端订阅多个消息,如果不行就建立多个客户端呗,没必要一个队列开一个worker。

foreach ($subjects as $subject) {
    (new Client())->connect()->then(function (Client $client) {
        return $client->channel();
    })->then(function (Channel $channel) {
        $channel->consume(.....);
    });
}
  • ani 2021-11-15

    好的,谢谢,我看状态是busy