首页 > 解决方案 > 将 RabbitMQ pika 与 FastAPI 服务一起使用

问题描述

我有一个 FastAPI 服务,一个轻量级的直通服务。收到 POST 请求后,服务会向 RabbitMQ 队列发布消息。由于 pika 库不是线程安全的,我必须为每个请求创建一个新连接。但是 RabbitMQ 文档另有建议 - 建议对应用程序使用长寿命连接,并为不同的线程/请求使用通道。

我的应用程序不期望负载很重,所以可以使用 pika 库并为每个请求创建连接吗?或者,对于我的用例来说,rabbitpy 是一个更好的库吗?

谢谢你。

标签: rabbitmqfastapipika

解决方案


也许不是您正在寻找的答案,但我刚刚遇到了完全相同的问题,并认为我已经使用挂钩到 FastAPI 使用的 asyncio 事件循环的 pika AsyncioConnection 解决了它。

该代码是回调地狱,但您可以将其隐藏在模块中。

我的解决方案


推荐阅读