1
当我做一个web应用程序使用torado + flask,我遇到了一个问题,当我向我的应用程序发送请求时,它对我没有任何回应,它总是等待。 当我发现问题时,我发现在我的服务器机器(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()
除非您想将* wsgi/flask应用程序与原生龙卷风应用程序*组合起来,否则'FallbackHandler'是不必要的。但你说得对,在Tornado WSGIContainer中运行烧瓶通常是一个坏主意:http://www.tornadoweb.org/en/stable/wsgi.html#tornado.wsgi.WSGIContainer。如果你使用烧瓶,你应该使用gunicorn或uwsgi而不是龙卷风的http服务器。 –
绝对 - 在我的回答中,我只是假设你应该将Flask包装在WSGI容器中进行生产。 –
谢谢你所有的答案。我会考虑使用gunicorn而不是龙卷风的http服务器。谢谢! – elina