我知道这个问题有点老了,但这里有一个用皮卡做这个的例子。
关于AMQP和RabbitMQ,如果您已经声明了队列,那么可以使用passive flag重新声明队列,并保持所有其他队列参数相同。对此声明的响应declare-ok将包括队列中的消息数。
下面是一个pika 0.9.5的例子:import pika
def on_callback(msg):
print msg
params = pika.ConnectionParameters(
host='localhost',
port=5672,
credentials=pika.credentials.PlainCredentials('guest', 'guest'),
)
# Open a connection to RabbitMQ on localhost using all default parameters
connection = pika.BlockingConnection(parameters=params)
# Open the channel
channel = connection.channel()
# Declare the queue
channel.queue_declare(
callback=on_callback,
queue="test",
durable=True,
exclusive=False,
auto_delete=False
)
# ...
# Re-declare the queue with passive flag
res = channel.queue_declare(
callback=on_callback,
queue="test",
durable=True,
exclusive=False,
auto_delete=False,
passive=True
)
print 'Messages in queue %d' % res.method.message_count
这将打印以下内容:"])>
"])>
Messages in queue 0
您可以从message_count成员获取消息数。