簡體   English   中英

異步進程連接-Node.js child_process

[英]Asynchronous process connection - Node.js child_process

據我所知,在Node.js中child_process的創建是異步的-我們如何知道child_process是否已准備好接收消息,例如IPC? 我們是否可以檢查“就緒”事件或“已創建”事件?

我沒有在這里列出這樣的事件:

https://nodejs.org/api/child_process.html#child_process_class_childprocess

我在這里缺少什么嗎? 通常,對於異步進程,我們需要等待回調或事件觸發后再繼續。

您可以假定孩子已經開始並准備就緒。 節點將緩沖您發送的異步消息(上限)。

從Node v5.8.0開始,存在一個回調,您可以在發生錯誤時在send上進行注冊(如果發送失敗,則可以通知您)。 另外, child_process.send文檔說:

如果未提供回調函數並且無法發送消息,則ChildProcess對象將發出“錯誤”事件。 例如,當子進程已經退出時,可能會發生這種情況。

基本上,因為太多的事情可能出錯,所以您無法真正知道子進程已正常運行,直到您的應用程序實際與之對話並獲得對代碼有意義的有效響應。 因此,任何來自節點的有關派生子進程“成功”的通用信息都只是其准備就緒的暗示,因此它們不會費心提供如此微弱的信號。

如果您的子節點進程確實是異步的,並且您的父進程與該子進程沒有任何實際聯系,那么您需要添加自己的“我很好”消息。 父母可以期望孩子發送消息( process.send({ startup: 'OK' }) )。 盡管如果您想知道子進程是否繼續正常運行(這可能比您想要的要多,但可能會結束),這很快就會演變為正在進行的運行狀況檢查。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM