Python 龙卷风烧瓶关闭等待

Python 龙卷风烧瓶关闭等待,python,flask,tornado,Python,Flask,Tornado,当我让一个web应用程序使用torado+flask时,我遇到了一个问题:当我向我的应用程序发送请求时,它对我没有任何响应,并且总是等待。 当我发现这个问题时,我发现在我的服务器机器(linux)中有许多“close wait”(关闭等待)。 我不知道如何解决这个问题,有人能帮我吗? 以下是我使用tornado的代码: #coding=utf-8 from tornado.wsgi import WSGIContainer from tornado.httpserver import HTTPS

当我让一个web应用程序使用torado+flask时,我遇到了一个问题:当我向我的应用程序发送请求时,它对我没有任何响应,并且总是等待。 当我发现这个问题时,我发现在我的服务器机器(linux)中有许多“close wait”(关闭等待)。 我不知道如何解决这个问题,有人能帮我吗? 以下是我使用tornado的代码:

#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()

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


话虽如此,我强烈建议不要使用这种方法——Tornado包括一个优秀的、与服务器更好地集成的、在许多方面优于Flask的。如果使用Flask很重要,我建议探索不同的方法来确保并发性(例如,nginx负载平衡器后面的多个实例),甚至可以看看,这是异步的,非常类似于Flask。

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


话虽如此,我强烈建议不要使用这种方法——Tornado包括一个优秀的、与服务器更好地集成的、在许多方面优于Flask的。如果使用Flask很重要,我建议探索不同的方法来确保并发性(例如,nginx负载平衡器后面的多个实例),甚至可以看看,它既异步又非常类似于Flask。

FallbackHandler
是不必要的,除非您想将wsgi/Flask应用程序与本机tornado应用程序结合使用。但你是对的,在Tornado容器中运行烧瓶通常是个坏主意:。如果您使用的是flask,您可能应该使用gunicorn或uwsgi,而不是tornado的http服务器。当然——在我的回答中,我只是假设您应该将flask包装在WSGI容器中进行生产。谢谢您的回答。我会考虑使用GuniCORN而不是龙卷风的HTTP服务器。谢谢!code>FallbackHandler是不必要的,除非您想将wsgi/flask应用程序与本机tornado应用程序结合使用。但你是对的,在Tornado容器中运行烧瓶通常是个坏主意:。如果您使用的是flask,您可能应该使用gunicorn或uwsgi,而不是tornado的http服务器。当然——在我的回答中,我只是假设您应该将flask包装在WSGI容器中进行生产。谢谢您的回答。我会考虑使用GuniCORN而不是龙卷风的HTTP服务器。谢谢!