Flask 中并行化请求处理的正确方法

问题描述 投票:0回答:1

我有一个接收

GET
请求的 Flask 服务,并且我想扩展该端点(在单个计算机/容器上)上的 QPS。我应该使用 python
ThreadPoolExecutor
ProcessPoolExecutor
,还是其他东西?
GET
请求只是从数据库支持的缓存中检索小块数据。 Flask 有什么特定的地方需要考虑吗?

python multithreading flask
1个回答
0
投票

都不是。

Flask 将为每个工作人员提供一个请求 - 您设置它的方式(使用 Gunicorn、wsgi 或 awsgi)决定了您的应用程序可以处理的并行请求的数量。

在您的应用程序内部,您无需更改任何内容 - 您的视图将被称为独立进程、独立线程或独立异步任务,具体取决于您如何设置服务器 - 这就是您必须修改配置的地方。

仅当每个请求都具有计算和数据获取(这些计算和数据获取本身可以在同一请求内并行化)时,使用另一种并发策略才有意义。

检查您的部署是如何配置的,并选择最适合您的选项(在所有条件相同的情况下,选择最简单的一个):https://flask.palletsprojects.com/en/stable/deploying/(另外,我会不推荐这些选项中的“mod_wsgi” - 它超级复杂且技术陈旧)

© www.soinside.com 2019 - 2024. All rights reserved.