线程龙卷风+烧瓶应用程序的正确方法是什么?
What is the proper way to thread tornado+flask app?
我用 flask 制作了一个网络应用程序,运行 它使用 flask 自己的网络服务器,参数 'threaded=True'。效果很好。
app.run(host='0.0.0.0', port=5000, threaded=True)
但很快我发现它只适用于开发环境,所以我决定使用'tornado'。但它不能同时工作。
http_server = HTTPServer(WSGIContainer(app))
http_server.listen(5000)
IOLoop.instance().start()
烧瓶有没有类似'threaded=True'的参数给线程?还是我应该手动完成?如果是这样,正确的做法是什么?
Tornado 的 WSGIContainer 不支持线程,这意味着它也不适合大多数生产用途(Tornado 的其余部分是,只是不支持 WSGIContainer)。当在同一进程中为 Tornado RequestHandlers 和 WSGI 应用程序提供服务很重要时,使用 Tornado 的 WSGIContainer 是一个好主意。否则,我建议 gunicorn
或 uwsgi
。
我用 flask 制作了一个网络应用程序,运行 它使用 flask 自己的网络服务器,参数 'threaded=True'。效果很好。
app.run(host='0.0.0.0', port=5000, threaded=True)
但很快我发现它只适用于开发环境,所以我决定使用'tornado'。但它不能同时工作。
http_server = HTTPServer(WSGIContainer(app))
http_server.listen(5000)
IOLoop.instance().start()
烧瓶有没有类似'threaded=True'的参数给线程?还是我应该手动完成?如果是这样,正确的做法是什么?
Tornado 的 WSGIContainer 不支持线程,这意味着它也不适合大多数生产用途(Tornado 的其余部分是,只是不支持 WSGIContainer)。当在同一进程中为 Tornado RequestHandlers 和 WSGI 应用程序提供服务很重要时,使用 Tornado 的 WSGIContainer 是一个好主意。否则,我建议 gunicorn
或 uwsgi
。