我正在改进我的FastAPI项目。其中一个方法需要在另一台机器上运行一个繁重的计算任务。由于负载很高,这应该以队列的方式完成。我正在遵循RabbitMQ RPC guide通过消息队列执行远程过程调用。
本指南建议为每个客户端-服务器会话创建独占队列,这意味着如果我为每个方法调用创建新示例,那么对于N个调用,将创建N个队列,这显然是低效的。
所以,我的问题是:
1.在FastAPI中是否有一种方法可以创建固定的工人拉取,并只给予每个工人一个唯一的RPCClient示例?或者,也许可以从这些客户端创建一个固定的拉取,并从这个拉取中给每个新工人一个客户端?
1.如果我使用上面提到的直截了当的解决方案,速度会有多慢?
1.是否有有效的方法通过单个响应队列为多个工作线程返回结果?
1条答案
按热度按时间oogrdqng1#
我通过简单地使用Celery和RabbitMQ作为后端,成功地解决了所有这些问题