Skip to content

lmctv/py-amqp

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python AMQP 0.9.1 client library

Version: 0.9.1
Web:http://amqp.readthedocs.org/
Download:http://pypi.python.org/pypi/amqp/
Source:http://github.com/celery/py-amqp/
Keywords:amqp, rabbitmq

About

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

  • 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 to basic_consume.
    • Publisher confirms
  • Support for basic_return

  • Uses AMQP 0-9-1 instead of 0-8.
    • Channel.access_request and ticket arguments to methods removed.
    • Supports the arguments argument to basic_consume.
    • internal argument to exchange_declare removed.
    • auto_delete argument to exchange_declare deprecated
    • insist argument to Connection 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 to queue_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

Further