2012-08-08 30 views
0

PHP中向RabbitMQ發佈消息時,即使未找到交換,AMQPExchange->publish方法也會返回true。我正在設置AMQP_MANDATORY標誌。下面是代碼:AMQP_MANDATORY標誌在PHP中不起作用(w/RabbitMQ)

$myExchange->publish($myMessage, $myRoutingKey, AMQP_MANDATORY, $myOptions); 

我知道我使用的方法,在有效的方式,因爲它的工作原理,但如果我給它一個不存在的交換或隊列,它仍然返回true。

回答

0

強制性與立即一樣,不會失敗發佈操作,而是返回AMQP客戶端返回通道上的消息。因此,您需要檢查是否已返回消息以查明有關此強制性發佈的問題。

相關:查看AMQPExchange::publish此評論:http://www.php.net/manual/en/amqpexchange.publish.php#106987

+0

我怎樣才能從通道讀取?該交易所構建的通道$通道由連接$連接構成。 – Jed 2012-08-09 17:28:02

+0

通常這是通過在通道上註冊一個監聽器來完成的:http://www.rabbitmq.com/api-guide.html#returning我不知道如何在PHP庫中實現這一點。 – 2012-08-09 17:44:59