Package: amqp
Version:5.2.0Web:https://amqp.readthedocs.io/Download:https://pypi.org/project/amqp/Source:http://github.com/celery/py-amqp/Keywords:amqp, rabbitmqAboutThis is a fork ofamqplibwhich was originally written by Barry Pederson.
It is maintained by theCeleryproject, and used bykombuas a pure python
alternative whenlibrabbitmqis not available.This library should be API compatible withlibrabbitmq.Differences fromamqplibSupports draining events from multiple channels (Connection.drain_events)Support for timeoutsChannels are restored after channel error, instead of having to close the
connection.Support for heartbeatsConnection.heartbeat_tick(rate=2)must called at regular intervals
(half of the heartbeat value if rate is 2).Or some other scheme by usingConnection.send_heartbeat.Supports RabbitMQ extensions:Consumer Cancel Notificationsby default a cancel results inChannelErrorbeing raisedbut not if aon_cancelcallback is passed tobasic_consume.Publisher confirmsChannel.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).Authentication Failure NotificationsInstead of just closing the connection abruptly on invalid
credentials, py-amqp will raise anAccessRefusederror
when connected to rabbitmq-server 3.2.0 or greater.Support forbasic_returnUses AMQP 0-9-1 instead of 0-8.Channel.access_requestandticketarguments to methodsremoved.Supports theargumentsargument tobasic_consume.internalargument toexchange_declareremoved.auto_deleteargument toexchange_declaredeprecatedinsistargument toConnectionremoved.Channel.alertshas been removed.Support forChannel.basic_recover_async.Channel.basic_recoverdeprecated.Exceptions renamed to have idiomatic names:AMQPException->AMQPErrorAMQPConnectionException-> ConnectionError``AMQPChannelException-> ChannelError``Connection.known_hostsremoved.Connectionno longer supports redirects.exchangeargument toqueue_bindcan now be empty
to use the “default exchange”.AddsConnection.is_alivethat tries to detect
whether the connection can still be used.AddsConnection.connection_errorsand.channel_errors,
a list of recoverable errors.Exposes the underlying socket asConnection.sock.AddsChannel.no_ack_consumersto keep track of consumer tags
that set the no_ack flag.Slightly better at error recoveryQuick overviewSimple producer publishing messages totestqueue using default exchange:importamqpwithamqp.Connection('broker.example.com')asc:ch=c.channel()ch.basic_publish(amqp.Message('Hello World'),routing_key='test')Producer publishing totest_exchangeexchange with publisher confirms enabled and using virtual_hosttest_vhost:importamqpwithamqp.Connection('broker.example.com',exchange='test_exchange',confirm_publish=True,virtual_host='test_vhost')asc:ch=c.channel()ch.basic_publish(amqp.Message('Hello World'),routing_key='test')Consumer with acknowledgments enabled:importamqpwithamqp.Connection('broker.example.com')asc:ch=c.channel()defon_message(message):print('Received message (delivery tag:{}):{}'.format(message.delivery_tag,message.body))ch.basic_ack(message.delivery_tag)ch.basic_consume(queue='test',callback=on_message)whileTrue:c.drain_events()Consumer with acknowledgments disabled:importamqpwithamqp.Connection('broker.example.com')asc:ch=c.channel()defon_message(message):print('Received message (delivery tag:{}):{}'.format(message.delivery_tag,message.body))ch.basic_consume(queue='test',callback=on_message,no_ack=True)whileTrue:c.drain_events()SpeedupsThis library hasexperimentalsupport of speedups. Speedups are implemented using Cython. To enable speedups,CELERY_ENABLE_SPEEDUPSenvironment variable must be set during building/installation.
Currently speedups can be installed:using source package (using--no-binaryswitch):CELERY_ENABLE_SPEEDUPS=truepipinstall--no-binary:all:amqpbuilding directly source code:CELERY_ENABLE_SPEEDUPS=truepythonsetup.pyinstallFurtherDifferences between AMQP 0.8 and 0.9.1http://www.rabbitmq.com/amqp-0-8-to-0-9-1.htmlAMQP 0.9.1 Quick Referencehttp://www.rabbitmq.com/amqp-0-9-1-quickref.htmlRabbitMQ Extensionshttp://www.rabbitmq.com/extensions.htmlFor more information about AMQP, visithttp://www.amqp.orgFor other Python client libraries see:http://www.rabbitmq.com/devtools.html#python-devpy-amqp as part of the Tidelift SubscriptionThe maintainers of py-amqp and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/pypi-amqp?utm_source=pypi-amqp&utm_medium=referral&utm_campaign=readme&utm_term=repo)