1

我正在尝试掌握 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 个通道。我希望只看到 1 个连接,有 2 个频道。

4

1 回答 1

0

您必须尝试使用​​通道循环和$channel->wait(null, true);. 第二个参数是$non_blocking,默认是false

于 2020-02-05T11:38:41.343 回答