rabbitmq - 将 RabbitMQ pika 与 FastAPI 服务一起使用
问题描述
我有一个 FastAPI 服务,一个轻量级的直通服务。收到 POST 请求后,服务会向 RabbitMQ 队列发布消息。由于 pika 库不是线程安全的,我必须为每个请求创建一个新连接。但是 RabbitMQ 文档另有建议 - 建议对应用程序使用长寿命连接,并为不同的线程/请求使用通道。
我的应用程序不期望负载很重,所以可以使用 pika 库并为每个请求创建连接吗?或者,对于我的用例来说,rabbitpy 是一个更好的库吗?
谢谢你。
解决方案
也许不是您正在寻找的答案,但我刚刚遇到了完全相同的问题,并认为我已经使用挂钩到 FastAPI 使用的 asyncio 事件循环的 pika AsyncioConnection 解决了它。
该代码是回调地狱,但您可以将其隐藏在模块中。
推荐阅读
- java - Try and Catch loops
- python - import skimage not a Valid Win32 application python3
- javascript - Python:如何更改网站页面的 URL?
- colors - Netlogo:如何只在有乌龟的时候给补丁上色?
- javascript - React context consumer how to access ref on to the consuming component
- go - What's the best way to get notified when kubernetes Deployments change using the k8s.io/client-go library?
- powershell - PowerShell question with sorting and piping
- react-native - How to add a UPI payment option to react native app
- styles - Nativescript - Set Inline Style Programmatic
- c - 在 Euchre 程序中显示手头的特定卡片