在Flask块请求中运行Fabric命令

时间:2014-02-22 20:07:22

标签: python flask tornado nonblocking fabric

我目前正在运行Flask服务器,该服务器从fabfile.py导入命令并使用以下命令运行它们:

with settings(...):
    command()

但是,当某人正在运行命令时,fabric在命令完成之前不会响应发送到flask服务器的其他请求。我怎样才能确保不会发生这种情况?

我正在使用tornado通过以下设置投放Flask

from tornado.wsgi import WSGIContainer
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
from flask_ import app
import tornado.options

tornado.options.parse_command_line()

http_server = HTTPServer(WSGIContainer(app))
http_server.listen(5000)
IOLoop.instance().start()

谢谢, 马特

1 个答案:

答案 0 :(得分:2)

Tornado的WSGIContainer是一个单线程WSGI服务器,很难单独使用。除非您有特定的理由在同一过程中组合WSGI应用程序和Tornado应用程序,否则最好使用专用的多线程WSGI服务器,如gunicorn或uwsgi。