我希望能够使用 RabbitMQ 消费者来监听新消息,但线程被阻塞并且应用程序无法启动。异步处理监听处理程序的最佳方法是什么?
@asynccontextmanager
async def lifespan(app: FastAPI):
client = RabbitMQClient()
await client.connect()
queue_to_callback = {"request.queue": handleRequestNotification}
client.start_consuming(queue_to_callback_dict=queue_to_callback)
client.channel.start_consuming()
yield
await client.close()
在我的
main.py
:
FastAPI(lifespan=lifespan)
我的假设是
async def
将使该处理程序异步运行。为此建议采用什么方法并将其扩展到多个消费渠道?
我也有同样的问题,特别是对于消费者,FastaApi 应用程序阻止了我。能解决吗?