我需要获取已准备好的消息数量。队列具有三种类型的消息: 1. Total 2. Unack'd 3. Ready
Ready 是那些在队列中但尚未被消费的。
url = "http://<RABBITHOST>:15672/api/queues/%2f/{}".format(q)
res = requests.get(url, auth=("<user>","<password>")).json()
messages_in_queue = res.get("messages_ready")
这里的问题是我必须传入用户名和密码。使用 Pika 我相信你可以得到“全部”消息。有没有办法使用 Pika 获取其他两种类型(未确认和准备就绪)?
不,AMQP 协议不支持获取未确认的消息。为此,您仍然需要使用 HTTP API。如果您进行被动队列声明,则返回的消息计数是就绪消息的数量。