我正试图使用AMQPExchange::setFlags(int$flags)在我的交换机上设置AMQP_AUTODELETE标志
http://php.net/manual/en/amqp.constants.phphttp://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。
有人找到解决方案了吗?谢谢
AMQP_AUTODELETE标志只能用于AMQPQueue。有关有效标志,请参阅AMQPExchange::setFlags
手册页面。
我也遇到了同样的问题。无法使用当前的php-amqp模块(v1.2.0)创建具有自动删除功能的交换机。
dev-master(1.4.0-dev)中最近有一个提交正在添加此功能。尽管如此,我还是没能让它发挥作用。我看到exchange对象具有auto_delete属性,但当它被声明时,在rabbitmq(v3.1.3)中,它的auto/delete标志被设置为false。
现在我将创建cronjob,它将删除没有相关队列的交换。
这是您的问题和合作请求的答案。欢迎对本主题提出任何意见。