Skip to main content

aioampq without callbacks!

Project description

Asyncamqp is a little extension to aioamqp based on the ideas from this pull request (https://github.com/Polyconseil/aioamqp/pull/118). The changes here get rid of the callbacks stuff.

Install

Install it using pip

$ pip install asyncamqp

Usage

To publish stuff, just do the same as you would do with aioamqp:

await channel.basic_publish(payload='hi there!', exchange_name='',
                            routing_key='my-rt')

To consume stuff, you don’t need to use callbacks anymore.

async with channel.basic_consume(queue_name='my-queue', exchange_name='',
                                 routing_key='my-queue') as consumer:
    async for msg in consumer:
        print(msg.body)

Consuming messages this way we always wait for a new message to arrive in the queue. We can use a timeout in milliseconds for it, too:

# now we pass the timeout argument
async with channel.basic_consume(queue_name='my-queue', exchange_name='',
                                 routing_key='my-queue',
                                 timeout=100) as consumer:
    async for msg in consumer:
        print(msg.body)

Or we could simply consume the messages already in the queue and stop consuming stuff when we have no more messages:

# now we pass the wait_message argument.
async with channel.basic_consume(queue_name='my-queue', exchange_name='',
                                 routing_key='my-queue',
                                 wait_message=False) as consumer:
    async for msg in consumer:
        print(msg.body)

As it is a simple extension to aioamqp, please refer to the aioamqp’s docs for full information. Just remember that when consuming it you don’t use callbacks but the context manager/async for stuff.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
asyncamqp-0.1.4.tar.gz (5.4 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page