我在节点中做了一些繁重的统计,所以我将分支分派给子进程,其中子进程将处理所有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