究竟是通过threaded = True
对app.run()
吗?
我的应用程序处理来自用户的输入,并花费一些时间来完成.在此期间,应用程序无法处理其他请求.我已经测试了我的应用程序,threaded=True
它允许我同时处理多个请求.
Mar*_*ers 71
从Flask 1.0开始,Flask附带的WSGI服务器默认以线程模式运行.
在1.0之前,或者如果禁用线程,服务器以单线程模式运行,并且一次只能处理一个请求.任何并行请求都必须等到可以处理它们,如果您尝试从请求联系您自己的服务器,这可能会导致问题.
随着threaded=True
请求每一个新的线程来处理.您的服务器可以同时处理多少个线程完全取决于您的操作系统以及它对每个进程的线程数设置的限制.该实现使用了SocketServer.ThreadingMixIn
类,它对可以旋转的线程数没有限制.
请注意,Flask服务器仅用于开发.它不是生产就绪的服务器.不要依赖它在更广泛的网络上运行您的网站.使用适当的WSGI服务器,如gunicorn或uWSGI).
我的应用程序可以与此语句同时处理多少个请求?
这在很大程度上取决于您的应用程序。每个新请求都会启动一个线程-这取决于您的计算机可以处理多少个线程。我看不到限制线程数量的选项(例如生产部署中的uwsgi提供)。
使用此功能有什么缺点?如果我不希望同时收到多个请求,我可以继续使用它吗?
从单线程切换到多线程可能会导致并发错误……如果使用此方法,请谨慎处理全局对象(请参阅文档中的g对象!)和状态。
归档时间: |
|
查看次数: |
44793 次 |
最近记录: |