PHP RabbitMQ如何检查队列是否存在

3

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

有没有办法检查队列是否存在或类似的东西?到目前为止,我找不到它。

这是我的代码:

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

1个回答

1

你不能像关闭通道或连接一样“关闭”队列。

如果你希望在消费者从RabbitMQ断开连接时删除队列,请使用$auto_delete参数设置为true来声明队列。

RabbitMQ会在没有更多的消费者从该队列中读取时自动删除队列。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接