2013-08-01 18 views
2

我試圖使用AMQPExchange :: setFlags(INT $標誌)在我的交換設置AMQP_AUTODELETE標誌RabbitMQ的:在Exchange設置AMQP_AUTODELETE標誌與PHP AMQP

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(); 

$上市> getFlags()返回0而不是16(AMQP_AUTODELETE的整數值)。

但是,當我設置AMQP_DURABLE標誌的方式相同時,$ exchange-> getFlags()返回2.

有沒有人找到過解決方案?謝謝!!!

回答

1

AMQP_AUTODELETE標誌只能用於AMQPQueue。 有效標誌見the AMQPExchange::setFlags manual page

+0

謝謝,看起來像我錯過了setFlag目前只考慮2種類型的標誌... –

+1

此鏈接已損壞。試試[AMQPExchange :: setFlags()](http://php.net/manual/pl/amqpexchange.setflags.php)和[AMQPQueue :: setFlags()](http://php.net/manual/pl/ amqpqueue.setflags.php) – vladkras

0

我遇到同樣的問題。無法使用當前php amqp模塊(v1.2.0)創建具有自動刪除功能的交易所。

dev-master(1.4.0-dev)中有recent commit正在添加此功能。儘管如此,我還是無法做到這一點。我看到交換對象具有auto_delete屬性,但是在聲明時,在rabbitmq(v3.1.3)中它將auto_delete標誌設置爲false。

現在我將創建cronjob,它將刪除沒有相關隊列的交換。

這是您的問題和協作請求的答案。任何關於這個話題的意見都是可以接受