在同一路线上有多个请求的女服务员服务器上加速烧瓶应用程序

时间:2021-07-02 15:06:52

标签: python-3.x flask celery python-multiprocessing waitress

我正在运行一个 Flask 应用程序,它在爬行 api 和许多机器学习计算上执行许多请求,能够同时在同一条路线上有许多请求

我在具有 8 个线程的服务器上使用女服务员作为 Web 服务器,因此我曾经以这种方式与女服务员一起运行应用程序(我将女服务员的默认线程从 4 更新为 6):

B
C

E
    
G
H

当同时执行 3 个客户端请求时,应用程序仍然很慢,运行时间为 2 分钟,每个请求逻辑上只需要 30 秒。我估计逻辑上可以减半。

任何关于女服务员选项或使用其他工具(芹菜、套接字等)的建议,我知道我正在使用多处理进行一些计算,而我使用女服务员是因为我在使用 ginicorn 和 nginx 时遇到了问题。 此外,asyncio 有时表现良好,有时会减慢我的应用速度。

非常感谢

1 个答案:

答案 0 :(得分:0)

使用 gunicorn 与 nginx 配合使用,并在多处理和并发请求中提供更好的结果。 但是,要在路由中使用 multiprocessing,请改用 multiprocessing.dummy