'Get a single message from the AMQP broker. If you want to
be notified of Basic.GetEmpty, use the Channel.add_callback method
adding your Basic.GetEmpty callback which should expect only one
parameter, frame. Due to implementation details, this cannot be called
a second time until the callback is executed.  For more information on
basic_get and its parameters, see:
http://www.rabbitmq.com/amqp-0-9-1-reference.html#basic.get
:param callable callback: The callback to call with a message that has
the signature callback(channel, method, properties, body), where:
channel: pika.Channel
method: pika.spec.Basic.GetOk
properties: pika.spec.BasicProperties
body: str, unicode, or bytes (python 3.x)
:param queue: The queue to get a message from
:type queue: str or unicode
:param bool no_ack: Tell the broker to not expect a reply'

def basic_get(self, callback=None, queue='', no_ack=False):

    self._validate_channel_and_callback(callback)
    if (self._on_getok_callback is not None):
        raise exceptions.DuplicateGetOkCallback()
    self._on_getok_callback = callback
    self._send_method(spec.Basic.Get(queue=queue, no_ack=no_ack))
