【问题标题】:Flask - notify sending service data was received, then processFlask - 通知发送服务数据已收到,然后处理
【发布时间】:2018-10-03 17:55:46
【问题描述】:

我在 Flask 中有两个最小的 Web 微服务。一个(称为 X)接收来自外部服务的 POST 请求。 X 然后进行一些数学运算并将 POST 发送到另一个服务 Y。目前,X 等待 Y 完成其处理,然后 X 将结果发送回初始外部服务。整个流水线平均需要 6-7 秒,从性能角度来看,这是不可取的。

在 Flask 中从 X --> Y 执行即发即弃 POST 的最佳实践方法是什么(如果这甚至是特定于 Flask 的问题;我宁愿不调用另一个框架)。

【问题讨论】:

    标签: python http flask


    【解决方案1】:

    您的要求明确提示,使用异步任务队列。如果您的应用程序不仅仅是 小型 规模的 Web API,我认为使用/实现专门的消息队列工具会比 Flask 中的任何类型的hacks 产生更好的结果。

    一般的工作流程如下,外部服务向 X 发送 POST 请求。X 向 Y 发送一条消息(并忘记它)并立即将响应返回给外部服务。现在消息队列的任务是确保消息被 Y 接收并且 Y 按需要处理它。

    如果此工作流程适合您,您可以查看 RabbitMQCelery,两者都相当容易设置。我亲自使用了 RabbitMq 和 Flask,对结果非常满意。另请查看this 答案,了解有关在 Flask 中使用 celery 的一些概述。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-11
      • 2018-03-16
      • 2016-02-11
      相关资源
      最近更新 更多