tornado 多进程模式解析

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

相关文章

用Python设计一个经典小游戏

用Python设计一个经典小游戏

本文主要介绍如何用Python设计一个经典小游戏:猜大小。 在这个游戏中,将用到前面我介绍过的所有内容:变量的使用、参数传递、函数设计、条件控制和循环等,做个整体的总结和复习。 游戏规则...

如何使用django的MTV开发模式返回一个网页

如何使用django的MTV开发模式返回一个网页

1.MTV开发模式介绍 M:Models 模型(数据) 与数据组织相关的功能。组织和存储数据的方法和模式,与数据模型相关的操作。 T:Templates 模板(样式) 与表现相关的所有...

django 信号调度机制详解

django 信号调度机制详解

前言 Django中提供了“信号调度”,用于在框架执行操作时解耦。通俗来讲,就是一些动作发生的时候,信号允许特定的发送者去提醒一些接受者。 1、Django内置信号 Model si...

python计算牛顿迭代多项式实例分析

本文实例讲述了python计算牛顿迭代多项式的方法。分享给大家供大家参考。具体实现方法如下: ''' p = evalPoly(a,xData,x). Evaluates New...

python清除字符串里非数字字符的方法

本文实例讲述了python清除字符串里非数字字符的方法。分享给大家供大家参考。具体如下: import re s = "how19 a*re 254y**ou?" # U...