2014-06-11 16 views
3

所以我在Node上開發了一個服務器羣,每臺機器需要多個進程來處理負載。由於Windows不太適合節點cluster模塊,所以我不得不手動解決它。如何在與Linux系統調用的fork()相同的意義上fork/clone相同的Node子進程?

真正的問題是,當我分叉節點進程時,需要JS模塊路徑作爲child_process.fork()函數的第一個參數,並且一旦分叉,子進程將不會從其父進程繼承任何東西。在我的情況下,我想要一個在Linux中執行類似fork()系統調用的函數,它克隆父進程,繼承所有內容並從fork()完成的地方繼續執行。這可以在Node平臺上實現嗎?

+0

windows如何與cluster.js不相處? http://nodejs.org/api/cluster.html你可能需要升級節點和你的模塊到最新版本 – KeepCalmAndCarryOn

+0

嗯,我沒有檢查過最新版本,但即使它在Windows上工作,我仍然需要以上述方式分叉過程。 – ETye

+0

如果這仍然是相關的,你可以看看https://www.npmjs.com/package/posix-fork –

回答

2

我不node.js的認爲這是以往任何時候都支持fork(2)

從節點GitHub的頁面上的主題的評論

https://github.com/joyent/node/issues/2334#issuecomment-3153822

我們不是(曾經)去支持分叉。

不能移植到Windows

難概念,爲用戶

整個堆將與壓實VM被迅速複製;無論從寫入時複製

沒有必要

難好處,對我們做

​​

這是產卵()功能產卵節點的特殊情況 進程。除了在正常的 ChildProcess實例中使用所有方法之外,返回的對象還有一個內置的通信通道 。有關詳細信息,請參閱child.send(消息,[sendHandle])。

+0

好的。現在,在JavaScript級別執行fork(2)似乎是不可能的。感謝您挖掘問題評論。 – ETye

相關問題