tornado 多进程模式解析

yipeiwu_com6年前Python基础

本文主要研究的是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 多进程模式解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

相关文章

Pycharm创建项目时如何自动添加头部信息

Pycharm创建项目时如何自动添加头部信息

1.打开PyCharm,选择File--Settings 2.依次选择Editor---Code Style-- File and Code Templates---Python Sc...

感知器基础原理及python实现过程详解

感知器基础原理及python实现过程详解

简单版本,按照李航的《统计学习方法》的思路编写 数据采用了著名的sklearn自带的iries数据,最优化求解采用了SGD算法。 预处理增加了标准化操作。 ''' perceptr...

Python随机生成彩票号码的方法

本文实例讲述了Python随机生成彩票号码的方法。分享给大家供大家参考。具体如下: 前些日子在淘宝上买了一阵子彩票,每次都是使用淘宝的机选,每次一注。后来觉得不如自己写一个机选的程序有意...

简述:我为什么选择Python而不是Matlab和R语言

简述:我为什么选择Python而不是Matlab和R语言

 做数据分析、科学计算等离不开工具、语言的使用,目前最流行的数据语言,无非是MATLAB,R语言,Python这三种语言,但今天小编简单总结了python语言的一些特点及平常使用的工具等...

django最快程序开发流程详解

django最快程序开发流程详解

1.建立工程 在工程目录下打开cmd,输入以下命令。其中mysite是项目名称。 django-admin startproject mysite 命令运行完后,在该目录下会出现...