Flask 如何处理并发请求?

Sat*_*tor 3 python flask

我的 Flask 应用程序执行以下操作:用户上传文件 - 文件被处理 - > Flask 返回文件

我很好奇如果两个用户同时访问该网站并执行相同的任务会发生什么。

我使用selenium 服务器与ray结合在应用程序上执行同步请求

简短形式的代码

ray.init()

@ray.remote
def parallel_1():
    driver = webdriver.Remote(
        command_executor="http://localhost:4444/wd/hub",
        desired_capabilities={
            "browserName": "chrome",
        })

# do task


ret_id1 = parallel_1.remote()
ret_id2 = parallel_1.remote()
ret1, ret2 = ray.get([ret_id1, ret_id2])


Run Code Online (Sandbox Code Playgroud)

Flask 视图函数很简单,没有线程或会话,是否有什么我不知道的事情发生?或者 Flask 如何处理同时请求?

Tho*_*mas 5

烧瓶没有。并行请求处理是底层 WSGI Web 服务器的任务,它将请求发送到 Flask 进行处理。

Flask 内置的开发服务器Flask.run()默认以线程运行方式调用

在生产中,您将使用 WSGI 容器之一或其他部署选项,并在那里控制并行性。例如,Gunicorn有一个-w命令行参数,它控制工作进程的数量,并-k控制这些工作进程的工作方式(进程、线程或 Tornado 事件机等)。