您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

在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协议。

python 2022/1/1 18:35:51 有340人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶