【问题标题】:AMQP_MANDATORY flag not working in PHP (w/ RabbitMQ)AMQP_MANDATORY 标志在 PHP 中不起作用(带 RabbitMQ)
【发布时间】:2012-08-08 23:04:34
【问题描述】:

当在PHP 中向RabbitMQ 发布消息时,AMQPExchange->publish 方法返回true,即使没有找到交换。我正在设置AMQP_MANDATORY 标志。代码如下:

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

我知道我正在以有效的方式使用该方法,因为它有效,但如果我向它提供一个不存在的交换或队列,它仍然返回 true。

【问题讨论】:

    标签: php rabbitmq amqp


    【解决方案1】:

    强制,如立即,不会使发布操作失败,而是在 AMQP 客户端的返回通道上返回消息。因此,您需要检查消息是否已被退回,以了解有关此强制性出版物的问题。

    相关:在AMQPExchange::publish上查看此评论:http://www.php.net/manual/en/amqpexchange.publish.php#106987

    【讨论】:

    • 我如何从那个频道阅读? Exchange 是由一个通道 $channel 构建的,该通道是由一个连接 $connection 构建的。
    • 通常这是通过在频道上注册一个监听器来完成的:rabbitmq.com/api-guide.html#returning 我不知道 PHP 库如何/是否可行。
    猜你喜欢
    • 2022-08-13
    • 2013-09-24
    • 1970-01-01
    • 2015-09-28
    • 1970-01-01
    • 1970-01-01
    • 2013-08-02
    • 2018-11-08
    • 2023-03-26
    相关资源
    最近更新 更多