标签: python http flask
我在Flask中有两个最小的Web微服务。一个(称为 X )从外部服务接收POST请求。 X 然后进行一些数学运算并向另一项服务发送POST, Y 。目前, X 等待 Y 完成处理,然后 X 将结果发送回初始外部服务。整个管道平均需要6-7秒,从性能角度来看这是不可取的。
从 X - >执行即发即弃POST的最佳做法是什么? Flask中的 Y (如果这甚至是特定于Flask的问题;我宁愿不调用另一个框架)。
答案 0 :(得分:1)
您的要求使用异步任务队列清楚地提示。如果您的应用程序不仅仅是小型规模的Web API,我认为使用/实现消息队列的专用工具将比Flask中的任何 hacks 产生更好的结果。< / p>
一般工作流程将变为如下,外部服务向X发送POST请求.X向Y发送消息(并忘记它)并立即将响应返回给外部服务。现在,消息队列的任务是确保Y收到消息,Y根据需要处理它。
如果此工作流程适合您,您可以查看RabbitMQ或Celery,两者都相当容易设置。我亲自将RabbitMq与Flask一起使用,对结果非常满意。另请参阅this回答,了解使用芹菜与烧瓶的概述。