AMQP Publishing Mixin for Tornado RequestHandlers.
sprockets.mixins.amqp
is available on the
Python Package Index
and can be installed via pip
or easy_install
:
pip install sprockets.mixins.amqp
https://pythonhosted.org/sprockets.mixins.amqp
- pika>=0.10.0
- tornado>=4.2.0
You may optionally install sprockets.mixins.correlation
into your request handler to take advantage of automatic correlation_id fetching.
Otherwise, be sure to set correlation_id as an instance variable on your request handler before sending AMQP messages.
This examples demonstrates the most basic usage of sprockets.mixins.amqp
export AMQP_URL="amqp://user:password@rabbitmq_host:5672/%2f"
python my-example-app.py
import json
from tornado import gen, web
from sprockets.mixins import amqp
def make_app(**settings):
application = web.Application(
[
web.url(r'/', RequestHandler),
], **settings)
amqp_settings = {
"reconnect_delay": 5,
}
amqp.install(application, **amqp_settings)
return application
class RequestHandler(amqp.PublishingMixin,
correlation.HandlerMixin,
web.RequestHandler):
@gen.coroutine
def get(self, *args, **kwargs):
body = {'request': self.request.path, 'args': args, 'kwargs': kwargs}
yield self.amqp_publish(
'exchange',
'routing.key',
json.dumps(body),
{'content_type': 'application/json'}
)
url: | The AMQP URL to connect to. |
---|---|
reconnect_delay: | The optional time in seconds to wait before reconnecting on connection failure. |
timeout: | The optional maximum time to wait for a bad state to resolve before treating the failure as persistent. |
connection_attempts: | The optional number of connection attempts to make before giving up. |
on_ready_callback: | The optional callback to call when the connection to the AMQP server has been established and is ready. |
on_unavailable_callback: | The optional callback to call when the connection to the AMQP server becomes unavailable. |
on_persistent_failure_callback: | The optional callback to call when the connection failure does not resolve itself within the timeout. |
on_message_returned_callback: | The optional callback to call when the AMQP server returns a message. |
ioloop: | An optional IOLoop to override the default with. |
Any environment variables set will override the corresponding AMQP settings passed into install()
- AMQP_URL
- AMQP_TIMEOUT
- AMQP_RECONNECT_DELAY
- AMQP_CONNECTION_ATTEMPTS
sprockets.mixins.amqp
source is available on Github at https://github.com/sprockets/sprockets.mixins.amqp
sprockets.mixins.amqp
is released under the 3-Clause BSD license.