总结工作者NodeJS的值

时间:2017-09-30 11:40:17

标签: javascript node.js node-cluster

我有主人和工人并行计算。

如何总结他们的结果?

每个工人完成工作后,他自杀,'res'变量没有价值,因此无法将其累积到任何变量。

if (cluster.isMaster) {
    for (var i = 0; i < numCPUs; i++) {
        const worker = cluster.fork();
        worker.send({ mydata: array[i] });  
    }

} else {
    process.on('message', (msg) => {
        res = AnyFunction(msg.mydata, dx, f);
        console.log('Result of ' + pid + ' worker: ' + res);
        process.exit();
    });
}

有什么办法吗?

1 个答案:

答案 0 :(得分:0)

尝试以下方法:

if (cluster.isMaster) {
    for (var i = 0; i < numCPUs; i++) {
        const worker = cluster.fork();
        worker.send({ mydata: array[i] });  
        let sum = 0;
        worker.on('message', res => sum+=res);
    }

} else {
    process.on('message', (msg) => {
        res = AnyFunction(msg.mydata, dx, f);
        console.log('Result of ' + pid + ' worker: ' + res);
        process.send(res);
        process.exit();
    });
}