Flask 可以使用 Tornado Server 的异步功能吗? [复制]
Posted
技术标签:
【中文标题】Flask 可以使用 Tornado Server 的异步功能吗? [复制]【英文标题】:Can Flask use the async feature of Tornado Server? [duplicate] 【发布时间】:2015-10-27 12:58:05 【问题描述】:我们有一个项目使用 Flask+Gunicorn(sync)。这在很长一段时间内都很好用,但是最近我发现 Asyncio(Python3.5) 在标准库中支持异步 io。
但是,在 Asyncio 之前,有 Twisted 和 Tornado 异步服务器。所以,我在想 Flask 是否可以使用 Tornado 的 aysncio 功能,导致 Gunicorn 支持 Tornado 工人阶级。
【问题讨论】:
可以使用WSGIContainer对象:flask.pocoo.org/docs/0.10/deploying/wsgi-standalone @MartijnPieters 是的,我知道。让我好奇的是,我们是否仍然可以使用 Flask+Tornado 来处理 C10K。 【参考方案1】:没有。可以在 Tornado 的 WSGIContainer
上运行 Flask,但由于 Flask 受 WSGI 接口的限制,它将无法利用 Tornado 的异步特性。 gunicorn
或 uwsgi
通常是比 Tornado 的 WSGIContainer
更好的选择,除非您特别需要在与原生 Tornado RequestHandlers
相同的进程中运行 Flask 应用程序。
【讨论】:
以上是关于Flask 可以使用 Tornado Server 的异步功能吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
tornado 启动WSGI应用(Flask)使用多线程将同步代码变成异步