Version: | 2.3.1 |
---|---|
Web: | https://amqp.readthedocs.io/ |
Download: | https://pypi.org/project/amqp/ |
Source: | http://github.com/celery/py-amqp/ |
Keywords: | amqp, rabbitmq |
This is a fork of amqplib which was originally written by Barry Pederson. It is maintained by the Celery project, and used by kombu as a pure python alternative when librabbitmq is not available.
This library should be API compatible with librabbitmq.
Differences from amqplib
Supports draining events from multiple channels (
Connection.drain_events
)Support for timeouts
Channels are restored after channel error, instead of having to close the connection.
Support for heartbeats
Connection.heartbeat_tick(rate=2)
must called at regular intervals (half of the heartbeat value if rate is 2).- Or some other scheme by using
Connection.send_heartbeat
.
- Supports RabbitMQ extensions:
- Consumer Cancel Notifications
- by default a cancel results in
ChannelError
being raised - but not if a
on_cancel
callback is passed tobasic_consume
.
- by default a cancel results in
- Publisher confirms
Channel.confirm_select()
enables publisher confirms.Channel.events['basic_ack'].append(my_callback)
adds a callback to be called when a message is confirmed. This callback is then called with the signature(delivery_tag, multiple)
.
- Exchange-to-exchange bindings:
exchange_bind
/exchange_unbind
. Channel.confirm_select()
enables publisher confirms.Channel.events['basic_ack'].append(my_callback)
adds a callback to be called when a message is confirmed. This callback is then called with the signature(delivery_tag, multiple)
.
- Exchange-to-exchange bindings:
- Authentication Failure Notifications
- Instead of just closing the connection abruptly on invalid
credentials, py-amqp will raise an
AccessRefused
error when connected to rabbitmq-server 3.2.0 or greater.
Support for
basic_return
- Uses AMQP 0-9-1 instead of 0-8.
Channel.access_request
andticket
arguments to methods removed.- Supports the
arguments
argument tobasic_consume
. internal
argument toexchange_declare
removed.auto_delete
argument toexchange_declare
deprecatedinsist
argument toConnection
removed.Channel.alerts
has been removed.- Support for
Channel.basic_recover_async
. Channel.basic_recover
deprecated.
- Exceptions renamed to have idiomatic names:
AMQPException
->AMQPError
AMQPConnectionException
-> ConnectionError``AMQPChannelException
-> ChannelError``Connection.known_hosts
removed.Connection
no longer supports redirects.exchange
argument toqueue_bind
can now be empty to use the "default exchange".
Adds
Connection.is_alive
that tries to detect whether the connection can still be used.Adds
Connection.connection_errors
and.channel_errors
, a list of recoverable errors.Exposes the underlying socket as
Connection.sock
.Adds
Channel.no_ack_consumers
to keep track of consumer tags that set the no_ack flag.Slightly better at error recovery
Differences between AMQP 0.8 and 0.9.1
AMQP 0.9.1 Quick Reference
RabbitMQ Extensions
For more information about AMQP, visit
For other Python client libraries see: