W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
用于處理多個進程的實用程序,包括將服務(wù)器分為多個進程和管理子進程。
?subprocess.CalledProcessError
? 的別名。
返回此機器上的處理器數(shù)量
啟動多個工作進程。
如果 ?num_processes
為 None 或 <= 0,我們會檢測這臺機器上可用的內(nèi)核數(shù)量并派生該數(shù)量的子進程。 如果給定 ?num_processes
并且 > 0,我們將fork特定數(shù)量的子進程。
由于我們使用進程而不是線程,因此任何服務(wù)器代碼之間都沒有共享內(nèi)存。
請注意,多個進程與 ?autoreload
模塊(或 ?tornado.web.Application
? 的 ?autoreload=True
? 選項,當 ?debug=True
? 時默認為 ?True
?)不兼容。 當使用多個進程時,在調(diào)用 ?fork_processes
? 之前不能創(chuàng)建或引用任何 ?IOLoop
?。
在每個子進程中,?fork_processes
? 返回其任務(wù) ID,一個介于 0 和 ?num_processes
? 之間的數(shù)字。 異常退出的進程(由于信號或非零退出狀態(tài))以相同的 id 重新啟動(最多 max_restarts 次)。 在父進程中,?fork_processes
? 在所有子進程正常退出后調(diào)用 ?sys.exit(0)
?。
?max_restarts
默認為 100。
可用性:?Unix
?
返回當前任務(wù) ID(如果有)。
如果此進程不是由 ?fork_processes
創(chuàng)建的,則返回 ?None
?。
使用 ?IOStream
包裝 ?subprocess.Popen
?。
構(gòu)造函數(shù)與 ?subprocess.Popen
? 相同,但添加了以下內(nèi)容:
?stdin
?、?stdout
和 ?stderr
可能具有值 ?tornado.process.Subprocess.STREAM
?,這將使生成的 ?Subprocess
的相應(yīng)屬性成為 ?PipeIOStream
?。 如果使用此選項,調(diào)用者負責在完成Stream時關(guān)閉Stream。
?Subprocess.STREAM
? 選項以及 ?set_exit_callback
? 和 ?wait_for_exit
? 方法在 Windows 上不起作用。 因此,沒有理由在該平臺上使用此類而不是 ?subprocess.Popen
?。
在 5.0 版中更改: ?io_loop
參數(shù)(自 4.1 版以來已棄用)已被刪除。
此進程退出時運行回調(diào)。
回調(diào)接受一個參數(shù),即進程的返回碼。
此方法使用 ?SIGCHLD
處理程序,這是一個全局設(shè)置,如果您有其他庫嘗試處理相同的信號,則可能會發(fā)生沖突。 如果您使用多個 ?IOLoop
?,則可能需要先調(diào)用 ?Subprocess.initialize
? 以指定一個 ?IOLoop
? 來運行信號處理程序。
在許多情況下,如果信號處理程序?qū)е聠栴},則可以使用 ?stdout
?或 ?stderr
Stream上的關(guān)閉回調(diào)作為退出回調(diào)的替代方法。
可用性:?Unix
?
返回一個 ?Future
,它在進程退出時解析。
用法:
ret = yield proc.wait_for_exit()
這是 ?set_exit_callback
?協(xié)程的替代方案(以及阻塞 ?subprocess.Popen.wait
? 的替代方案)。
默認情況下,如果進程具有非零退出狀態(tài),則引發(fā) ?subprocess.CalledProcessError
?。 使用 ?wait_for_exit(raise_error=False)
? 抑制此行為并返回退出狀態(tài)而不引發(fā)。
4.2 版中的新功能。
可用性:?Unix
?
初始化 ?SIGCHLD
處理程序。
信號處理程序在 ?IOLoop
上運行以避免鎖定問題。 請注意,用于信號處理的 ?IOLoop
不必與各個 ?Subprocess
對象使用的相同(只要 ?IOLoop
都在單獨的線程中運行)。
在 5.0 版中更改: ?io_loop
參數(shù)(自 4.1 版以來已棄用)已被刪除。
可用性:?Unix
?
刪除 ?SIGCHLD
?處理程序。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: