龙卷风瓶关闭等待

时间:2016-12-27 11:06:46

标签: python flask tornado

当我使用 torado + flask 创建一个Web应用程序时,我遇到一个问题,当我向我的应用程序发送请求时,它对我没有任何反应,它总是在等待。   当我发现问题时,我发现我的服务器机器(linux)中有很多' close wait' 。   我不知道如何解决这个问题,任何人都可以帮助我吗?   这是我使用龙卷风的代码:

#coding=utf-8
from tornado.wsgi import WSGIContainer
from tornado.httpserver import HTTPServer`enter code here`
from tornado.ioloop import IOLoop
from service import app #app is a flask in another file:app=Flask(__name__)
from config import SERVER_CONF
from appLog import logging


def startService():
    logging.info('start web,http://%s:%s/test'%(SERVER_CONF['IP'],SERVER_CONF['PORT']))
    try:
        http_server=HTTPServer(WSGIContainer(app))
        http_server.listen(SERVER_CONF['PORT'],address=SERVER_CONF['IP'])
        IOLoop.instance().start()
    except Exception as e:
        logging.error('start failed:')
        logging.error(e)


if __name__=='__main__':
    startService()

1 个答案:

答案 0 :(得分:0)

我的理解是您需要使用FallbackHandler,如this answer中所述。

话虽如此,我强烈建议不要使用这种方法 - Tornado包含一个优秀的microframework of its own,它与服务器集成得更好,并且在许多方面优于Flask。如果使用Flask很重要,我建议探索一种不同的方法来确保并发(例如nginx负载均衡器后面的多个实例),或者甚至查看Sanic,它既是异步的又非常类似于Flask。