【问题标题】:RabbitMq: Setting AMQP_AUTODELETE flag on Exchange with PHP AMQPRabbitMq:使用 PHP AMQP 在 Exchange 上设置 AMQP_AUTODELETE 标志
【发布时间】:2013-08-02 15:52:47
【问题描述】:

我正在尝试使用 AMQPExchange::setFlags ( int $flags ) 在我的交易所设置 AMQP_AUTODELETE 标志

http://php.net/manual/en/amqp.constants.php http://www.php.net/manual/en/amqpexchange.setflags.php

不工作... :(

$exchange = new \AMQPExchange(new \AMQPChannel($this->_connection));

$exchange->setName($name);
$exchange->setType(AMQP_EX_TYPE_FANOUT);

$exchange->setFlags(AMQP_AUTODELETE);
$exchange->declare();

$exchange->getFlags() 返回 0 而不是 16(AMQP_AUTODELETE 的整数值)。

但是当我以同样的方式设置 AMQP_DURABLE 标志时它会起作用,$exchange->getFlags() 返回 2。

有没有人找到解决方案?谢谢!!!

【问题讨论】:

    标签: php rabbitmq amqp php-amqp


    【解决方案1】:

    AMQP_AUTODELETE 标志只能用于 AMQPQueue。 有关有效标志,请参阅 the AMQPExchange::setFlags manual page

    【讨论】:

    【解决方案2】:

    我也有同样的问题。无法使用当前的 php amqp 模块 (v1.2.0) 创建具有自动删除功能的交换。

    在 dev-master (1.4.0-dev) 中有 recent commit 正在添加此功能。尽管如此,我还是无法让它发挥作用。我看到交换对象具有 auto_delete 属性,但是当它被声明时,在 rabbitmq (v3.1.3) 中它的 auto_delete 标志设置为 false。

    现在我将创建 cronjob,它将删除没有相关队列的交换。

    这是对您的问题和合作请求的回答。欢迎就该主题提出任何意见。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-18
      • 2016-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-23
      • 2023-03-16
      • 1970-01-01
      相关资源
      最近更新 更多