1

状況はそうです。

PHP PECL AMQP RabbitMQ クライアントを使用しています。Exchange に初めてメッセージを送信しようとすると、何も起こりません。メッセージが送信されていないようで、AMQPExchange::publish が true を返しても、AMQPQueue::get は何も返しません。

その後 (つまり、2 回目の為替宣言の後)、すべて正常に動作します。

それは何でしょうか?

アップデート。コードサンプル。

<?php
$connection = new AMQPConnection;
//config...
$connection->connect();

$channel = new AMQPChannel($connection);

$exchange = new AMQPExchange($channel);
$exchange->setName('test_exchange');
$exchange->setType(AMQP_EX_TYPE_DIRECT);
$exchange->declareExchange();
$exchange->setFlags(AMQP_DURABLE);

$exchange->bind('test_exchange', 'test_routing_key');
$exchange->publish('test_message', 'test_routing_key');

$queue = new AMQPQueue($channel);
$queue->setName('test_routing_key');
$queue->declareQueue();
$queue->bind('test_exchange', 'test_routing_key');
var_dump($queue->get(AMQP_AUTOACK));
4

1 に答える 1