Wrapper for the PIKA for asyncio and humans.
pip install aio-pika
import asyncio
from aio_pika import connect
@acyncio.coroutine
def main(loop):
connection = yield from connect("amqp://guest:[email protected]/", loop=loop)
queue_name = "test_queue"
routing_key = "test_queue"
# Creating channel
channel = yield from connection.channel()
# Declaring exchange
exchange = yield from channel.declare_exchange('direct', auto_delete=True)
# Declaring queue
queue = yield from channel.declare_queue(queue_name, auto_delete=True)
# Binding queue
yield from queue.bind(exchange, routing_key)
yield from exchange.publish(
Message(
bytes('Hello', 'utf-8'),
content_type='text/plain',
headers={'foo': 'bar'}
),
routing_key
)
# Receiving message
incoming_message = yield from queue.get(timeout=5)
# Confirm message
incoming_message.ack()
yield from queue.unbind(exchange, routing_key)
yield from queue.delete()
yield from connection.close()
if __name__ == "__main__":
loop = asyncio.get_event_loop()
loop.run_until_complete(main(loop))