我使用worker
模块分叉子进程。我希望在父进程完成一些工作之后从子进程返回映射的结果,但它不起作用。地图的大小非常大,我不确定是不是这个原因。如何从子进程向父进程发送映射?
function doWork() {
var child = cp.fork(__dirname + '/work');
child.on('message', function(m) {
console.log('completed: ' + m.results);
});
child.send({
msg: 'do work',
name: self.myname
});
}
worker.js
var results = {};
process.on ("message", function (m){
// work populates results map
work(m.name);
process.send({
msg : 'DONE',
// somehow this doesn't work
results: JSON.stringify(results)
});
});
如果我删除result
,那么它可以正常工作。我可以在父进程中获取msg。
var results = {};
process.on ("message", function (m){
// work populates results map
work(m.name);
process.send({
msg : 'DONE',
});
});