php rabbitmq如何判断队列是否存在
php rabbitmq how to check if the queue exists
我需要为队列创建一个析构函数。所以无论如何如果系统突然崩溃,析构函数都会被调用。仅当队列尚未关闭时,析构函数才会关闭所有队列和连接。
有没有办法检查队列是否存在或类似的东西?至今没找到。
目前这是我的代码
public function __destruct(){
# add if queue exists here
$this->channels->close();
$this->connection->close();
echo 'Connection closed.';
}
您不能像关闭通道或连接那样"close"队列。
如果您希望在消费者与 RabbitMQ 断开连接时删除队列,请将 $auto_delete
参数设置为 true
来声明队列。
RabbitMQ 会在没有更多消费者从该队列中读取时为您删除队列。
顺便说一下,这似乎是默认设置,因此如果您不覆盖 $auto_delete,您的队列应该会自动删除:https://github.com/videlalvaro/php-amqplib/blob/master/PhpAmqpLib/Channel/AMQPChannel.php#L339
我需要为队列创建一个析构函数。所以无论如何如果系统突然崩溃,析构函数都会被调用。仅当队列尚未关闭时,析构函数才会关闭所有队列和连接。
有没有办法检查队列是否存在或类似的东西?至今没找到。
目前这是我的代码
public function __destruct(){
# add if queue exists here
$this->channels->close();
$this->connection->close();
echo 'Connection closed.';
}
您不能像关闭通道或连接那样"close"队列。
如果您希望在消费者与 RabbitMQ 断开连接时删除队列,请将 $auto_delete
参数设置为 true
来声明队列。
RabbitMQ 会在没有更多消费者从该队列中读取时为您删除队列。
顺便说一下,这似乎是默认设置,因此如果您不覆盖 $auto_delete,您的队列应该会自动删除:https://github.com/videlalvaro/php-amqplib/blob/master/PhpAmqpLib/Channel/AMQPChannel.php#L339