Using the Blocking Connection to get a message from RabbitMQΒΆ

The BlockingChannel.basic_get() method will return a tuple with the members.

If the server return a message, the first item in the tuple will be a pika.spec.Basic.GetOk() object with the current message count, the redelivered flag, the routing key that was used to put the message in the queue, and the exchange the message was published to. The second item will be a pika.spec.Basic.Properties() object and the third will be the message body.

If the server did not return a message a tuple of None, None, None will be returned.

Example of getting a message and acknowledging it:

import pika

connection = pika.BlockingConnection()
channel = connection.channel()
method_frame, header_frame, body = channel.basic_get('test')
if method_frame:
    print method_frame, header_frame, body
    channel.basic_ack(method_frame.delivery_tag)
else:
    print 'No message returned'