从python上的qpid获取消息量

时间:2012-04-18 10:24:27

标签: python message-queue amqp qpid

如何使用 python 上的 qpid库接收存储在队列中的大量邮件?

我试过这样的话:

from qpid.messaging import *

broker_rcv = connect_address 
address_rcv = queue_name  + "; { node: { type: queue }, assert: never , create: never, mode: " + "browse" + " }"
connection_rcv = Connection(broker_rcv)
connection_rcv.open()
session_rcv = connection_rcv.session()
receiver = session_rcv.receiver(address_rcv)
print receiver.available()

它始终会返回0条消息。

2 个答案:

答案 0 :(得分:1)

我通过添加receiver.capacity = 250解决了这个问题。但如果队列中有更多消息并且呼叫receiver.available()我收到250.但现在这不是一个大问题。

答案 1 :(得分:0)

我一直面临同样的问题。但我的最后一个目标是停止并恢复队列中的消息。我发现了这个:

qpidd --default-flow-stop-threshold=90 --default-flow-resume-threshold=75

或点击此链接:https://qpid.apache.org/releases/qpid-cpp-0.34/cpp-broker/book/producer-flow-control.html

这可能会对你有帮助。