您如何处理 REST API 服务器中的高吞吐量函数?
How do you handle high throughput functions in the REST API server?
我正在使用 python 烧瓶开发其余部分 API。 (客户端是移动应用)
但是,重要的功能是一个批处理程序,它从
DB对其进行处理,然后在用户请求POST方法时更新(或插入)数据与用户数据
考虑大量的读取、写入和计算
你是怎么开发的?
我是这样想的
在数据库中使用程序
创建独立于API的外部部署程序。
创建单独的批处理服务器
只需 运行 在 API 服务器上
我无法以我的知识判断什么是对的。
而且重要的是执行速度不能慢
为了让用户感觉,他们应该看起来像是在自己的设备上 运行ning。
后端开发想请教各位大神
我建议考虑 asyncio。这几乎就是您的用例 - i/o 很耗时,但不需要很多 CPU。所以基本上你会希望 i/o 异步完成,而服务器的其余部分继续进行。
- 服务器收到一些需要i/o的请求。
- 它将那个请求分离到你的 asyncio 架构中,所以它可以
被执行。
- 服务器已经可以接收其他请求,而
正在处理之前的 i/o 个请求。
- 前一个 i/o 请求完成。 Asyncio 提供了几种方法来
处理这个。
查看文档,但您可以提供回调,或构建您的逻辑以利用 Asyncio's event loop(它实质上管理上下文之间的来回切换,例如您的 "main" 上下文服务器服务请求和您已排队的异步 i/o 操作。
我正在使用 python 烧瓶开发其余部分 API。 (客户端是移动应用)
但是,重要的功能是一个批处理程序,它从 DB对其进行处理,然后在用户请求POST方法时更新(或插入)数据与用户数据
考虑大量的读取、写入和计算
你是怎么开发的?
我是这样想的
在数据库中使用程序
创建独立于API的外部部署程序。
创建单独的批处理服务器
只需 运行 在 API 服务器上
我无法以我的知识判断什么是对的。
而且重要的是执行速度不能慢
为了让用户感觉,他们应该看起来像是在自己的设备上 运行ning。
后端开发想请教各位大神
我建议考虑 asyncio。这几乎就是您的用例 - i/o 很耗时,但不需要很多 CPU。所以基本上你会希望 i/o 异步完成,而服务器的其余部分继续进行。
- 服务器收到一些需要i/o的请求。
- 它将那个请求分离到你的 asyncio 架构中,所以它可以 被执行。
- 服务器已经可以接收其他请求,而 正在处理之前的 i/o 个请求。
- 前一个 i/o 请求完成。 Asyncio 提供了几种方法来 处理这个。
查看文档,但您可以提供回调,或构建您的逻辑以利用 Asyncio's event loop(它实质上管理上下文之间的来回切换,例如您的 "main" 上下文服务器服务请求和您已排队的异步 i/o 操作。