RabbitMQ - Как повторно использовать одно и то же соединение с несколькими каналами - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь освоить некоторые лучшие практики для 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 и нажимаю на вкладку соединений, я вижу, что в списке есть 2 соединения, каждое из которых имеет 1 канал. Я надеюсь увидеть только 1 соединение с 2 каналами.

1 Ответ

0 голосов
/ 05 февраля 2020

вы должны попробовать что-то с l oop каналов и $channel->wait(null, true);. Второй параметр $non_blocking и значение по умолчанию false.

...