sprockets.mixins.amqp

AMQP Publishing Mixin for Tornado RequestHandlers.

Version Downloads Travis CodeCov Docs

Installation

sprockets.mixins.amqp is available on the Python Package Index and can be installed via pip or easy_install:

pip install sprockets.mixins.amqp

Requirements

  • pika>=0.10.0
  • tornado>=4.2.0

Example

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'}
        )

AMQP Settings

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.

Environment Variables

Any environment variables set will override the corresponding AMQP settings passed into install()

  • AMQP_URL
  • AMQP_TIMEOUT
  • AMQP_RECONNECT_DELAY
  • AMQP_CONNECTION_ATTEMPTS

Source

sprockets.mixins.amqp source is available on Github at https://github.com/sprockets/sprockets.mixins.amqp

License

sprockets.mixins.amqp is released under the 3-Clause BSD license.

Issues

Please report any issues to the Github project at https://github.com/sprockets/sprockets.mixins.amqp/issues