Python 与threaded=True同时处理烧瓶请求

Python 与threaded=True同时处理烧瓶请求,python,flask,Python,Flask,将threaded=True传递到app.run()的具体功能是什么 我的应用程序处理来自用户的输入,这样做需要一些时间。在此期间,应用程序无法处理其他请求。我已经用threaded=True测试了我的应用程序,它允许我同时处理多个请求 我的应用程序能够与此语句同时处理多少个请求 这完全取决于您的应用程序。每个新请求都将启动一个线程-这取决于您的机器可以处理多少线程。我看不到限制线程数量的选项(如uwsgi在生产部署中提供的) 使用这个有什么坏处?如果我不希望并发的请求超过几个,我可以继续使用这

threaded=True
传递到
app.run()
的具体功能是什么

我的应用程序处理来自用户的输入,这样做需要一些时间。在此期间,应用程序无法处理其他请求。我已经用
threaded=True
测试了我的应用程序,它允许我同时处理多个请求

我的应用程序能够与此语句同时处理多少个请求

这完全取决于您的应用程序。每个新请求都将启动一个线程-这取决于您的机器可以处理多少线程。我看不到限制线程数量的选项(如uwsgi在生产部署中提供的)

使用这个有什么坏处?如果我不希望并发的请求超过几个,我可以继续使用这个吗


从单线程切换到多线程可能会导致并发错误。。。如果使用此选项,请注意如何处理全局对象(请参阅文档中的g对象!)和状态

从Flask 1.0开始,默认情况下,Flask附带的WSGI服务器以线程模式运行

在1.0之前,或者如果禁用线程,服务器将以单线程模式运行,并且一次只能处理一个请求。任何并行请求都必须等待,直到它们能够被处理,这可能会导致问题

threaded=True时
请求都在一个新线程中处理。服务器可以并发处理多少线程完全取决于您的操作系统,以及它对每个进程的线程数设置了什么限制。该实现使用,这对它可以启动的线程数没有限制


请注意,Flask服务器仅设计用于开发。它不是生产就绪的服务器。不要依赖它在更广阔的网络上运行你的网站。请使用合适的WSGI服务器(如或)。

好的,谢谢。你肯定帮我澄清了这件事。当我问它能处理多少请求时,我只是想知道,
thread=true
是否允许并发处理硬编码的
x
请求量。所以这是由我的机器决定的?我从不使用开发服务器,所以我的答案不是确定的,但是,它似乎没有设置任何限制。。。如此无限(取决于系统资源)。我使用uWSGI运行我的应用程序,uWSGI有一个可配置的线程限制。唯一将使用我的应用程序的人是我办公室中的少数人。哈里森:那没关系,除非那些人试图入侵或DDOS攻击你的机器。我完全可以信任他们。多人同时使用该应用程序的可能性相对较小,因此我认为现在我只需让它在Flask服务器上运行即可。您认为在什么情况下使用gunicorn部署是一个好的决定?@Harrison:当您想将其向更广泛的web开放,或者您觉得需要更好地控制服务器使用多少资源时。专用WSGI服务器可以控制并发量,并使用多个进程来分配负载。@cryanbhu关键是恶意代理可以利用Flask(werkzeug)HTTP实现中的弱点进行攻击。循环式货运代理不太可能保护您不受此影响。生产质量的WSGI服务器做到了这一点,它们的目标是健壮和安全。