一尘不染

使用threaded = True同时处理Flask请求

flask

究竟是通过threaded = Trueapp.run()吗?

我的应用程序处理了来自用户的输入,并且花了一些时间。在这段时间内,应用程序无法处理其他请求。我已经测试了我的应用程序,threaded=True它可以让我同时处理多个请求。


阅读 1789

收藏
2020-04-05

共1个答案

一尘不染

从Flask 1.0开始,Flask随附的WSGI服务器默认在线程模式下运行。

在1.0之前的版本中,或者如果你禁用线程,则服务器以单线程模式运行,并且一次只能处理一个请求。任何并行请求都必须等待,直到可以处理它们为止,如果你尝试通过request与你自己的服务器联系,则会导致问题。

threaded=True请求的请求均在新线程中处理。服务器可以同时处理多少个线程完全取决于你的操作系统以及它对每个进程的线程数设置的限制。该实现使用SocketServer.ThreadingMixIn类,它对可启动的线程数没有任何限制。

请注意,Flask服务器仅用于开发。它不是可用于生产的服务器。不要依靠它在更广泛的网络上运行你的网站。请使用适当的WSGI服务器(例如gunicorn或uWSGI)。

2020-04-05