Flask文档用于描述如何执行此操作,但是由于以下性能说明而已被删除。除非所有异步代码都已经用Tornado编写,否则您不需要Tornado来提供Flask应用程序。
关于WSGI的Tornado文档也对此进行了描述。它们还包括一个重要警告,即与使用专用WSGI应用程序服务器(如uWSGI,Gunicorn或mod_wsgi)相比,此方法的性能可能较低。
WSGI是一个 同步 接口,而Tornado的并发模型基于单线程异步执行。这意味着运行与龙卷风的一个WSGI应用
WSGIContainer是
少可扩展性
比在多线程WSGI服务器一样运行相同的应用程序gunicorn或uwsgi。WSGIContainer仅在以相同的过程合并Tornado和WSGI的好处超过了降低的可伸缩性时才使用。
例如,改用Gunicorn:
gunicorn -w 4 app:app
毕竟,如果您确实真的想使用Tornado,则可以使用docs中描述的模式:
from tornado.wsgi import WSGIContainerfrom tornado.httpserver import HTTPServerfrom tornado.ioloop import IOLoopfrom yourapplication import apphttp_server = HTTPServer(WSGIContainer(app))http_server.listen(5000)IOLoop.instance().start()



