新聞中心
用于處理多個進程的實用程序,包括將服務器分為多個進程和管理子進程。

創(chuàng)新互聯(lián)建站是專業(yè)的呼蘭網站建設公司,呼蘭接單;提供網站制作、成都網站設計,網頁設計,網站設計,建網站,PHP網站建設等專業(yè)做網站服務;采用PHP框架,可快速的進行呼蘭網站開發(fā)網頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網站,專業(yè)的做網站團隊,希望更多企業(yè)前來合作!
exception tornado.process.CalledProcessError
?subprocess.CalledProcessError? 的別名。
tornado.process.cpu_count() → int
返回此機器上的處理器數量
tornado.process.fork_processes(num_processes: Optional[int], max_restarts: Optional[int] = None) → int
啟動多個工作進程。
如果 ?num_processes為 None 或 <= 0,我們會檢測這臺機器上可用的內核數量并派生該數量的子進程。 如果給定 ?num_processes并且 > 0,我們將fork特定數量的子進程。
由于我們使用進程而不是線程,因此任何服務器代碼之間都沒有共享內存。
請注意,多個進程與 ?autoreload模塊(或 ?tornado.web.Application? 的 ?autoreload=True? 選項,當 ?debug=True? 時默認為 ?True?)不兼容。 當使用多個進程時,在調用 ?fork_processes? 之前不能創(chuàng)建或引用任何 ?IOLoop?。
在每個子進程中,?fork_processes? 返回其任務 ID,一個介于 0 和 ?num_processes? 之間的數字。 異常退出的進程(由于信號或非零退出狀態(tài))以相同的 id 重新啟動(最多 max_restarts 次)。 在父進程中,?fork_processes? 在所有子進程正常退出后調用 ?sys.exit(0)?。
?max_restarts默認為 100。
可用性:?Unix?
tornado.process.task_id() → Optional[int]
返回當前任務 ID(如果有)。
如果此進程不是由 ?fork_processes創(chuàng)建的,則返回 ?None?。
class tornado.process.Subprocess(*args, **kwargs)
使用 ?IOStream包裝 ?subprocess.Popen?。
構造函數與 ?subprocess.Popen? 相同,但添加了以下內容:
?stdin?、?stdout和 ?stderr可能具有值 ?tornado.process.Subprocess.STREAM?,這將使生成的 ?Subprocess的相應屬性成為 ?PipeIOStream?。 如果使用此選項,調用者負責在完成Stream時關閉Stream。
?Subprocess.STREAM? 選項以及 ?set_exit_callback? 和 ?wait_for_exit? 方法在 Windows 上不起作用。 因此,沒有理由在該平臺上使用此類而不是 ?subprocess.Popen?。
在 5.0 版中更改: ?io_loop參數(自 4.1 版以來已棄用)已被刪除。
set_exit_callback(callback: Callable[[int], None]) → None
此進程退出時運行回調。
回調接受一個參數,即進程的返回碼。
此方法使用 ?SIGCHLD處理程序,這是一個全局設置,如果您有其他庫嘗試處理相同的信號,則可能會發(fā)生沖突。 如果您使用多個 ?IOLoop?,則可能需要先調用 ?Subprocess.initialize? 以指定一個 ?IOLoop? 來運行信號處理程序。
在許多情況下,如果信號處理程序導致問題,則可以使用 ?stdout ?或 ?stderrStream上的關閉回調作為退出回調的替代方法。
可用性:?Unix?
wait_for_exit(raise_error: bool = True) → Future[int]
返回一個 ?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?
classmethod initialize() → None
初始化 ?SIGCHLD處理程序。
信號處理程序在 ?IOLoop上運行以避免鎖定問題。 請注意,用于信號處理的 ?IOLoop不必與各個 ?Subprocess對象使用的相同(只要 ?IOLoop都在單獨的線程中運行)。
在 5.0 版中更改: ?io_loop參數(自 4.1 版以來已棄用)已被刪除。
可用性:?Unix?
classmethod uninitialize() → None
刪除 ?SIGCHLD ?處理程序。
網站欄目:創(chuàng)新互聯(lián)Tornado教程:Tornado多進程的實用程序
文章地址:http://m.fisionsoft.com.cn/article/dppdiej.html


咨詢
建站咨詢
