发布于 2018-01-28 03:24:16 | 319 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的Tornado 教程,程序狗速度看过来!

Tornado Python Web应用开发框架

Tornado的全称是Torado Web Server,从名字上看就可知道它可以用作Web服务器,但同时它也是一个Python Web的开发框架。最初是在FriendFeed公司的网站上使用,FaceBook收购了之后便开源了出来。


这篇文章主要介绍了tornado 多进程模式解析,具有一定借鉴价值,需要的朋友可以参考下

本文主要研究的是tornado 多进程模式的相关内容,具体如下。

官方文档的helloworld实例中的启动方法:


if __name__ == "__main__":

application.listen(8888) # listen is a shortcut for bind and start ,这点看httpserver.py可以得知


 tornado.ioloop.IOLoop.instance().start()

并且在listen中,将tornado启动为单进程模型。

所以要启动为多进程模型的方法为:摒弃listen方法


http_server = tornado.httpserver.HTTPServer(application)

  http_server.bind(options.port, options.host)

  http_server.start(num_processes=0) # tornado将按照cpu核数来fork进程

  tornado.ioloop.IOLoop.instance().start()

需要注意的一点是,要关掉debug模式,否则:


[E 110521 11:26:53 httpserver:229] Cannot run in multiple processes: IOLoop instance has already been initialized. You cannot call IOLoop.instance() before calling start()

原因是,autoreload.py已经在http_server.start()之前就初始化了IOLoop,这个在httpserver.py中的class HTTPServer()和def start()的doc string中已经解释了。

总结

以上就是本文关于tornado 多进程模式解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!



最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务