繁体   English   中英

Python Flask 上的同步 api 任务

[英]Synchronous api tasks on Python Flask

我知道我们不能使用 Flask 进行异步调用。 Flask 支持同步调用。 这是否意味着用户的请求等待之前启动的其他请求?

例如,我有一个这样的 post 方法,并假设 update 方法需要 10 秒才能执行:

@app.route('/update', methods = ['POST'])
def update():
    # CODE

假设有 100 个用户同时在 update 方法上发出 post 请求。 第 100 个用户会等待之前的请求(99 个用户 * 10 秒 = 990 秒)?

从概念上讲是的,您是正确的,但在现实世界中,这取决于您对 flask 应用程序的部署

Like we use Gunicorn which is a WSGI HTTP Server that usually lives between a reverse proxy Nginx and a web application such as Django or Flask. Gunicorn 产生了许多工人,工人的作用是处理 HTTP 请求。

首先,根据“异步”的含义,是的,您可以向安排异步工作的 Flask 应用程序发出 HTTP 请求。 这就是像celeryRq这样的任务队列的用途。 Flask Mega Tutorial的第 22 章中有一个很好的使用 Rq 的演练。

其次,如果你只有一个进程,单线程 web 服务器,那么是的,请求是按顺序处理的。 但在实践中,您将部署在uwsgigunicorn类的东西后面,它们管理运行您的应用程序的多个进程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM