当在PHP
中向RabbitMQ
发布消息时,即使找不到交换,AMQPExchange->publish
方法也会返回true
。我正在设置AMQP_MANDATORY
标志。这是代码:
$myExchange->publish($myMessage, $myRoutingKey, AMQP_MANDATORY, $myOptions);
我知道我正在以有效的方式使用该方法,因为它有效,但是如果我给它一个不存在的交换或队列,它仍然返回 true。
强制(
如即时)不会使发布操作失败,而是在 AMQP 客户端的返回通道上返回消息。因此,您需要检查是否已返回消息,以了解此强制发布的问题。
相关:请参阅AMQPExchange::publish
上的此评论:http://www.php.net/manual/en/amqpexchange.publish.php#106987