跳转到主要内容

用于向RabbitMQ发布事件的混入

项目描述

Tornado RequestHandlers的AMQP发布混入。

Version Downloads Build Status CodeCov Docs

安装

sprockets.mixins.amqp 可在 Python包索引 上找到,并且可以通过 pip 安装

pip3 install sprockets.mixins.amqp

文档

https://sprocketsamqp.readthedocs.io

Python兼容性

  • Python 3.7

  • Python 3.8

需求

  • Pika==0.13.1

  • Tornado>=6,<7

示例

您可以选择将 sprockets.mixins.correlation 安装到您的请求处理程序中,以利用自动 correlation_id 获取。否则,在发送AMQP消息之前,请确保在您的请求处理程序实例变量上设置 correlation_id。

以下示例演示了 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):

    async def get(self, *args, **kwargs):
        body = {'request': self.request.path, 'args': args, 'kwargs': kwargs}
        await self.amqp_publish(
            'exchange',
            'routing.key',
            json.dumps(body),
            {'content_type': 'application/json'}
        )

AMQP设置

url:

要连接到的AMQP URL。

reconnect_delay:

在连接失败后重新连接之前等待的可选秒数。

timeout:

在将失败视为持久性之前等待坏状态解决的最大可选时间。

connection_attempts:

在放弃之前尝试连接的可选次数。

on_ready_callback:

当连接到 AMQP 服务器建立并准备好时调用的可选回调。

on_unavailable_callback:

当连接到 AMQP 服务器变得不可用时调用的可选回调。

on_persistent_failure_callback:

当连接失败在超时时间内无法解决时调用的可选回调。

on_message_returned_callback:

当 AMQP 服务器返回消息时调用的可选回调。

ioloop:

一个可选的 IOLoop,用于覆盖默认设置。

环境变量

设置的环境变量将覆盖传入 install() 的相应 AMQP 设置

  • AMQP_URL

  • AMQP_TIMEOUT

  • AMQP_RECONNECT_DELAY

  • AMQP_CONNECTION_ATTEMPTS

来源

sprockets.mixins.amqp 源代码可在 Github 上找到,网址为 https://github.com/sprockets/sprockets.mixins.amqp

本地运行测试

您需要安装 python 3.7、Docker 和 Docker Compose。

$ python3 -m venv env
$ env/bin/activate
(env) $ pip3 install -r requires/testing.txt
(env) $ ./bootstrap.sh
(env) $ coverage run && coverage report

许可证

sprockets.mixins.amqp3-Clause BSD 许可证 下发布。

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

sprockets.mixins.amqp-3.0.1.tar.gz (12.2 kB 查看哈希值)

上传时间 源代码

由以下支持