我在節點中做了一些繁重的統計,所以我將分支分派給子進程,其中子進程將處理所有mongo查詢並通過數據循環等最後將結果發回給母親進程。它使用相對較小的數據集很好。Node.js分叉的孩子返回消息限制和解決方法
但是當數據變得足夠大時,通信似乎被阻塞或發送回來時出現問題。返回的數據是相當大的HighChart對象,其中包含超過200k的數據點,我可以在子進程調用process.send(data)之前記錄消息,並且cpu活動在子進程中幾乎降到0,這母親使用cpu的使用率很高,只是呆在那裏而不是下降。在這一點上,這個過程似乎只是掛起(沒有掛起,因爲它仍然在響應其他請求),但process.on('message',function(){});即使我讓它坐在那裏跑步也不會觸發。
IPC可以爲節點處理的大小是否有限制?無論如何圍繞這個或者一些破解它?有些人建議使用TCP或其他IP協議而不是IPC,但它有點讓管理孩子生活的問題複雜化。
還有什麼免費的工具,使調試節點更容易旁邊只是使用console.log?
非常感謝您的幫助提前
問候。 G
這很糟糕。除了以前的建議,我無法提供任何幫助,但會對查看您是否找到問題/解決方案感興趣。 – eshortie 2014-11-06 22:26:27
用不同的方法傳遞數據,需要的代碼更改最少的方法是使用filestream將stringyfy json寫入文件,並且一旦完成將文件路徑傳遞迴主進程並使其擁有它閱讀它然後清理....它很慢,但至少現在正在移動:/ – 2014-11-07 06:09:12
是的,這是一個可行的解決方案,但是IPC是一個問題。 – eshortie 2014-11-07 14:21:38