用于向RabbitMQ发布事件的混入
项目描述
Tornado RequestHandlers的AMQP发布混入。
安装
sprockets.mixins.amqp 可在 Python包索引 上找到,并且可以通过 pip 安装
pip3 install sprockets.mixins.amqp
文档
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.amqp 在 3-Clause BSD 许可证 下发布。
项目详情
sprockets.mixins.amqp-3.0.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5eac98305e33f6aa44c14c94e59911ac22e3781a1dc7ff4b94ba86c41bd620b2 |
|
MD5 | bf91a283f8ee37d2bc78c34954823634 |
|
BLAKE2b-256 | 55c31433b89118e0a322b19409c1460ea56c598d525f6214391c8853d169b3a4 |