python - 您如何处理 REST API 服务器中的高吞吐量函数?

标签 python api flask backend batch-processing

我正在使用 python flask 开发其余 API。 (客户端是一个移动应用程序)

然而,重要的功能是一个批处理程序,它从 DB 对其进行处理,然后在用户使用用户数据请求 POST 方法时更新(或插入)数据

考虑大量的读、写和计算

你如何开发它?

这是我的想法。

  1. 在数据库中使用程序

  2. 创建独立于 API 的外部部署程序。

  3. 创建一个单独的批处理服务器

  4. 只需在 API 服务器上运行即可

我不能以我的知识判断什么是对的。

重要的是执行速度不能太慢。

为了让用户感觉,它们应该看起来像是在自己的设备上运行。

想请教后端开发方面的建议。

最佳答案

我建议考虑 asyncio .这几乎就是您的用例 - i/o 很耗时,但不需要大量 CPU。所以基本上您会希望该 i/o 异步完成,而服务器的其余部分继续进行。

  • 服务器收到一些需要 i/o 的请求。
  • 它将那个请求分离到你的 asyncio 架构中,所以它可以 被执行。
  • 服务器已经可以接收其他请求,而 正在处理之前的输入/输出请求。
  • 之前的输入/输出请求完成。 Asyncio 提供了几种方法来 处理这个。

请参阅文档,但您可以提供回调,或构建您的逻辑以利用 Asyncio's event loop (它实质上管理上下文之间的来回切换,例如,服务器服务请求的“主要”上下文和您排队的异步 i/o 操作)。

关于python - 您如何处理 REST API 服务器中的高吞吐量函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57241337/

相关文章:

python - 处理数据库断开连接

python - 如何从我的 Flask 扩展访问 SQLAlchemy 数据库?

python - 在 python 中将下三角矩阵的索引作为一维列表的快速方法

Python:从命令行调用时如何启用 kwargs? (也许与 argparse)

python - 获取 HTML 源作为 HTML 对象,并能够使用 DOM 操作在其中工作

api - Android,Iphone,Windows和Blackberry API搜索应用程序

javascript - 将 chessbord.js 与 Flask 集成

python - 为什么 PyObjC 文档如此糟糕?

Ubuntu VM 上的 Python 脚本无法连接到 Twitter API

java - 命名返回对象列表的方法的最佳方式