当我使用 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()
答案 0 :(得分:0)
我的理解是您需要使用FallbackHandler
,如this answer中所述。
话虽如此,我强烈建议不要使用这种方法 - Tornado包含一个优秀的microframework of its own,它与服务器集成得更好,并且在许多方面优于Flask。如果使用Flask很重要,我建议探索一种不同的方法来确保并发(例如nginx负载均衡器后面的多个实例),或者甚至查看Sanic,它既是异步的又非常类似于Flask。