情况就是这样。
我正在使用 PHP PECL AMQP RabbitMQ 客户端。当我第一次尝试发送消息进行交换时,没有任何反应。似乎消息尚未发送,并且 AMQPQueue::get 没有返回任何内容,即使 AMQPExchange::publish 返回 true。
之后(即在第二次交换声明之后)一切正常。
会是什么?
UPD。代码示例。
<?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));