当前位置: 首页 > 面试题库 >

在Pika中获取队列大小(AMQP Python)

梁修贤
2023-03-14
问题内容

这个问题很简单,但是Google或Pika开源代码没有帮助。有没有办法在Pika中查询当前队列大小(项目计数器)?


问题答案:

在AMQP协议中有两种获取队列大小的方法。您可以使用Queue.Declare或Basic.Get。

如果您使用的是使用Basic.Consume到达的消息,那么您将无法获得此信息,除非断开连接(超时)并重新声明队列,否则将收到一条消息但不确认。在较新版本的AMQP中,您可以主动重新排队该消息。

至于Pika,我不知道具体细节,但是AMQP的Python客户端一直在我这边刺。通常,您将需要使用猴子补丁类来获取所需的信息,或者允许队列使用方超时,以便您可以定期执行其他操作,例如记录统计信息或找出队列中有多少消息。

解决此问题的另一种方法是放弃,并使用Pipe类运行sudo rabbitmqctl list_queues -p my_vhost。然后解析输出以找到所有队列的大小。如果执行此操作,则需要配置/etc/sudoers为不要求通常的sudo密码。

我祈祷其他人拥有更多的Pika经验来回答这一问题,指出您可以如何完成我提到的所有事情,在这种情况下,我将下载Pika并努力尝试。但是,如果没有发生这种情况,并且您难以修补Pika代码,则请参阅haigha。我发现它们的代码比其他Python
AMQP客户端库更直接,因为它们更加贴近AMQP协议。



 类似资料:
  • 问题内容: 我一直在查看我的elasticsearch日志,但遇到了错误 查找错误后,普遍的共识是增加队列的大小,如此处所述-https: //www.elastic.co/guide/en/elasticsearch/reference/current/modules- threadpool.html 我的问题是实际上该如何做?我缺少某处的配置文件吗? 问题答案: 要更改队列大小,可以将其添加到

  • 我已经学习了RabbitMQ的基础知识。有一件事我想出来了,发布者并不直接在队列上发布。exchange根据和exchange类型(下面的代码使用默认exchange)来决定应该发布消息的队列。我还找到了Publisher的示例代码。

  • 我正在尝试定期检查Kafka某个主题的队列大小。尽管如此,我甚至不知道如何检查这个指标一次。我对Kafka完全陌生,所以我不知道该怎么做。我认为这将涉及创建一个生产者或消费者来与队列交互,但我遇到了一个障碍。

  • 问题内容: 如何在0(1)时间复杂度的任何时间从队列中检索max和min元素?早些时候,我使用Collections.max和min查找元素,但这将是0(n)。 问题答案: 您只有2种方法来获得最小/最大操作的O(1): 如果结构已排序,并且您知道最大值/最小值位于何处 如果结构未排序且仅允许插入:每次插入项目并分别存储值时,您可以重新计算最小值/最大值 如果结构未排序并且允许插入和删除:我认为您

  • 问题内容: 我尝试了几种方法来获取文件大小,但始终为零。 我在日志中: 问题答案: 使用而不是 +调用attr上的.fileSize()。 在Swift 2.0中,我们使用do try catch模式,如下所示: 在Swift 3.x / 4.0中: