本文主要研究的是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 多进程模式解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
您可能感兴趣的文章:Python tornado队列示例-一个并发web爬虫代码分享Tornado协程在python2.7如何返回值(实现方法)深入解析Python的Tornado框架中内置的模板引擎使用Python的Tornado框架实现一个Web端图书展示页面为Python的Tornado框架配置使用Jinja2模板引擎的方法Python的Tornado框架实现异步非阻塞访问数据库的示例Python的Tornado框架实现图片上传及图片大小修改功能 总结以上是内存溢出为你收集整理的tornado 多进程模式解析全部内容,希望文章能够帮你解决tornado 多进程模式解析所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)