我们正在龙卷风上使用django开发一个项目。
def main():
tornado.options.parse_command_line()
wsgi_app = tornado.wsgi.WSGIContainer(
django.core.handlers.wsgi.WSGIHandler())
application = Application([(r'/websocket/', planet_socket.WsDate),
('.*', FallbackHandler, dict(fallback=wsgi_app)),
],
**settings)
print options.port
server = tornado.httpserver.HTTPServer(application)
server.listen(options.port)
tornado.ioloop.IOLoop.current().start()
if __name__ == '__main__':
main()
当我们按上述方式运行项目时,我们会解决以下问题。
示例项目是here。我们如何解决这个问题..
你知道吗?...谢谢
答案 0 :(得分:0)
这是WSGIContainer的限制:http://www.tornadoweb.org/en/stable/wsgi.html#tornado.wsgi.WSGIContainer
警告
WSGI是一个同步接口,而Tornado的并发模型是 基于单线程异步执行。这意味着 使用Tornado的WSGIContainer运行WSGI应用程序的可扩展性低于 在多线程WSGI服务器中运行相同的应用程序,如gunicorn或 uwsgi。仅在有组合优势时才使用WSGIContainer 龙卷风和WSGI在相同的过程中超过了减少的数量 可扩展性。
你需要让你的Django应用程序足够快,你不介意等待它,或者在通过网络进行通信的两个独立进程中运行Django和Tornado。就个人而言,我只会在WSGIContainer中运行Django,作为将所有内容转换为Tornado的过渡策略的一部分;如果Django是你的长期战略的一部分,那么我建议你使用不同的流程。