когда я делаю использование веб-приложения torado + flask, я отвечаю на вопрос, что когда я отправляю запрос в свое приложение, он ничего не отвечает мне и его всегда ждет. Когда я нахожу проблему, я обнаружил, что есть много 'close wait' на моем сервере (linux). Я не знаю, как решить этот вопрос, может кто-нибудь мне помочь? здесь код я использую смерч:торнадо колбу закрыть 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()
'FallbackHandler' не требуется, если вы не хотите * комбинировать * приложение wsgi/flask с родным торнадо. Но вы правы, что работающая колба в Tornado WSGIContainer - это, как правило, плохая идея: http://www.tornadoweb.org/en/stable/wsgi.html#tornado.wsgi.WSGIContainer. Если вы используете флягу, вы, вероятно, должны использовать gunicorn или uwsgi вместо http-сервера торнадо. –
Абсолютно - в своем ответе я только предположил, что вы должны обернуть Flask в контейнер WSGI для производства. –
Спасибо всем вашим ответам. Я буду рассматривать использование пушки, вместо http-сервера торнадо. Спасибо! – elina