tornado和django加工订单
我们正在开发一个关于龙卷风的django项目tornado和django加工订单,django,asynchronous,websocket,tornado,Django,Asynchronous,Websocket,Tornado,我们正在开发一个关于龙卷风的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),
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()
当我们按照上面的方式运行项目时,我们将解决以下问题
谢谢…这是WSGIContainer的一个限制: 警告 WSGI是一个同步接口,而Tornado的并发模型是 基于单线程异步执行。这意味着 使用Tornado的WSGIContainer运行WSGI应用程序的可伸缩性不如 在多线程WSGI服务器(如gunicorn或 uwsgi。仅当组合有好处时才使用WSGIContainer Tornado和WSGI在同一个过程中,超过了减少的 可伸缩性
你需要让你的Django应用程序足够快,以至于你不介意等待它,或者在两个单独的进程中运行Django和Tornado,通过网络进行通信。就我个人而言,我只会在WSGIContainer中运行Django,作为过渡战略的一部分,将一切都转换为Tornado;如果Django是您长期战略的一部分,那么我建议使用单独的流程。我们尝试使用单独的流程,但我们无法在tornado中验证登录Django的用户。所以,当我们分离这些过程时,我们如何进行身份验证,你能举个例子吗?