Flask如何处理同时请求?

3
我的Flask应用程序执行以下操作:用户上传文件-文件被处理-> Flask返回文件。
我很好奇如果两个用户同时访问网站并执行相同的任务会发生什么。
我使用selenium serverray结合使用,在应用程序上进行了同时请求。
简要代码。
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])



Flask视图函数非常简单,没有线程或会话,但是在幕后是否有什么我不知道的东西?或者Flask如何处理同时发生的请求?
1个回答

5

Flask不会处理并发请求,承担该任务的是底层的WSGI Web服务器,它将请求发送给Flask进行处理。

使用Flask.run()调用的内置开发服务器默认情况下使用线程运行。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接