tornado 多進程模式解析
本文主要研究的是tornado 多進程模式的相關(guān)內(nèi)容,具體如下。
官方文檔的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核數(shù)來fork進程 tornado.ioloop.IOLoop.instance().start()
需要注意的一點是,要關(guān)掉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已經(jīng)在http_server.start()之前就初始化了IOLoop,這個在httpserver.py中的class HTTPServer()和def start()的doc string中已經(jīng)解釋了。
總結(jié)
以上就是本文關(guān)于tornado 多進程模式解析的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
相關(guān)文章
對python中assert、isinstance的用法詳解
今天小編就為的就分享一篇對python中assert、isinstance的用法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11python Pandas庫基礎(chǔ)分析之時間序列的處理詳解
這篇文章主要介紹了python Pandas庫基礎(chǔ)分析之時間序列的處理詳解,Pandas作為Python環(huán)境下的數(shù)據(jù)分析庫,更是提供了強大的日期數(shù)據(jù)處理的功能,是處理時間序列的利器,需要的朋友可以參考下2019-07-07Python內(nèi)置函數(shù)—vars的具體使用方法
本篇文章主要介紹了Python內(nèi)置函數(shù)—vars的具體使用方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12Python基于smtplib協(xié)議實現(xiàn)發(fā)送郵件
這篇文章主要介紹了Python基于smtplib協(xié)議實現(xiàn)發(fā)送郵件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-06-06PyCharm Ctrl+Shift+F 失靈的簡單有效解決操作
這篇文章主要介紹了PyCharm Ctrl+Shift+F 失靈的簡單有效解決操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01協(xié)程Python 中實現(xiàn)多任務(wù)耗資源最小的方式
協(xié)程是 Python 中另外一種實現(xiàn)多任務(wù)的方式,只不過比線程更小,占用更小執(zhí)行單元(理解為需要的資源)。這篇文章主要介紹了協(xié)程Python 中實現(xiàn)多任務(wù)耗資源最小的方式,需要的朋友可以參考下2020-10-10