php rabbitmq如何检查队列是否存在

时间:2015-12-05 06:32:54

标签: php rabbitmq amqp

我需要为队列创建一个析构函数。因此,无论如何,如果系统突然崩溃,将调用析构函数。只有队列尚未关闭时,析构函数才会关闭所有队列和连接。

无论如何都要检查队列是否存在或类似的东西?到目前为止我找不到它。

目前这是我的代码

public function __destruct(){
      # add if queue exists here
		$this->channels->close();
		$this->connection->close();
		echo 'Connection closed.';
	}

1 个答案:

答案 0 :(得分:1)

您无法以关闭频道或连接的方式“关闭”队列。

如果您希望在使用者与RabbitMQ断开连接时删除队列,请声明$auto_delete参数设置为true的队列。

当没有更多消费者从该队列中读取消息时,RabbitMQ将为您删除队列。

顺便说一下,这似乎是默认设置,因此如果您不覆盖$ auto_delete,则应自动删除您的队列:https://github.com/videlalvaro/php-amqplib/blob/master/PhpAmqpLib/Channel/AMQPChannel.php#L339