Php rabbitmq-队列似乎是空的,即使队列上有消息

Php rabbitmq-队列似乎是空的,即使队列上有消息,php,rabbitmq,queue,message-queue,Php,Rabbitmq,Queue,Message Queue,我有一个工作正常的rabbit消费者(它正确地处理消息、发送确认等) 在其中,我试图使用queue_declare和passive标志(如此处所建议的:)检查队列是否为空 代码的相关部分如下所示: <?php $a = $this->channel->queue_declare($queueName, true); var_dump($a); 知道为什么吗?您使用的是什么PHP库?RabbitMQ和Erlang的哪个版本?您能提供一套完整的代码来重

我有一个工作正常的rabbit消费者(它正确地处理消息、发送确认等)

在其中,我试图使用queue_declare和passive标志(如此处所建议的:)检查队列是否为空

代码的相关部分如下所示:

  <?php
      $a = $this->channel->queue_declare($queueName, true);
      var_dump($a);

知道为什么吗?

您使用的是什么PHP库?RabbitMQ和Erlang的哪个版本?您能提供一套完整的代码来重现吗?通常,队列的大小与队列的使用者无关-这表明系统设计不佳。但是,有一个管理API可用于返回队列大小,如果这确实是您要查找的。@LukeBakken我使用lates RabbitMQ作为lib和。。。我会用Erlang版本回复你(我在电话atm上)。@我并不关心队列的大小,我只关心队列是否为空,因为如果队列上没有任何东西,我不想保持连接打开(如果你能解释为什么这会是糟糕的系统设计,我将不胜感激)。另外,在未来,我实际上正在考虑检查队列大小,并产生额外的消费者/提高进程的峰值优先级(同样,为什么这是糟糕的系统设计-我真诚地问,这不是讽刺)。
Basic.Get
是您要找的。无论是否有可用的消息,它都会立即返回。您使用的PHP库是什么?RabbitMQ和Erlang的哪个版本?您能提供一套完整的代码来重现吗?通常,队列的大小与队列的使用者无关-这表明系统设计不佳。但是,有一个管理API可用于返回队列大小,如果这确实是您要查找的。@LukeBakken我使用lates RabbitMQ作为lib和。。。我会用Erlang版本回复你(我在电话atm上)。@我并不关心队列的大小,我只关心队列是否为空,因为如果队列上没有任何东西,我不想保持连接打开(如果你能解释为什么这会是糟糕的系统设计,我将不胜感激)。另外,在未来,我实际上正在考虑检查队列大小,并产生额外的消费者/提高进程的峰值优先级(同样,为什么这是糟糕的系统设计-我真诚地问,这不是讽刺)。
Basic.Get
是您要找的。无论是否有可用消息,它都会立即返回。
    array(3) {
      [0]=>
        string(4) "fastQueue"
      [1]=>
        int(0)
      [2]=>
        int(1)
    }