1

我有一个要求,我必须运行一个独立于主节点线程的进程。基本上,目的是从主节点线程数据启动辅助进程,而不是等待回调或任何结果,因为辅助进程不必向主线程回馈任何东西。

我想在不阻塞主nodejs线程的情况下实现这一点,并且主线程不应该关心将数据传递给辅助线程后会发生什么。基本上,主线程的进程在将数据发送到辅助线程后就结束了,就辅助进程而言。

有什么建议可以实现吗?我阅读了有关子进程、webworkers、dnode 和进程 nexttick 的信息,但我不确定实现它的最佳方法是什么。我尝试了 nexttick,但我的经验是它仍然是主线程的一部分,尽管是异步的。

4

2 回答 2

2

如果您的目标只是启动进程而不考虑输出,您应该使用spawn with detached:true

对于传递数据,您可以使用标准输入(参见示例)或传递命令行参数或写入文件并重定向。

于 2013-07-22T15:11:07.430 回答
0

我已经实现了子进程分叉,用于将辅助/后台处理的数据传递给子进程(不断开子进程的连接)。到目前为止,这似乎很好地完成了我的工作。如果我遇到任何问题或找到更好的解决方案,我会更新。

//Main Process
var cp = require('child_process').fork('child.js');
cp.send(data);


//Child Process (child.js)
process.on('message', function(data){
 //do something with data
});
于 2013-07-25T14:57:19.877 回答