我正在尝试掌握RabbitMQ的一些最佳做法。我的目标是创建一个连接,然后在该连接上使用,在此连接上创建多个通道。
遵循RabbitMQ和php-amqplib文档,创建一个新连接看起来像这样。
$newConnection = new AMQPStreamConnection('localhost', 5672, 'guest', 'guest');
$newChannel = $newConnection->channel($channel_id);
代码继续以
while ($this->channel->is_consuming()) {
$this->channel->wait();
}
我将此代码保存在文件test.php中。然后,我继续打开两个终端会话,并在每个会话上运行以下
php test.php
我可以看到两个通道都处于打开状态并正在等待。但是,当我访问RabbitMQ的管理UI页面并单击“连接”选项卡时,我看到列出了2个连接,每个连接具有1个通道。我希望只能看到2个频道的1个连接。
有人可以帮我吗?谢谢!
您必须尝试使用通道循环和$channel->wait(null, true);
。第二个参数是$non_blocking
,默认参数是false
。