'Return a single payload message from one of our queues.
Raises:
Queue.Empty: if no messages available.'

def drain_events(self, timeout=None, callback=None, **kwargs):

    if ((not self._consumers) or (not self.qos.can_consume())):
        raise Empty()
    self._poll(self.cycle, callback, timeout=timeout)
