我正在使用node.js集群模块创建工作进程。在分叉它时,我设置了每个工作进程环境中的自定义变量。
当一个工作进程死亡时,我需要读取该自定义变量,但是当一个工作进程死亡时,我无法再访问它的环境对象。
至此,我尝试过以下方法:
我知道这样做行不通,我的问题是:如何在worker死亡之前访问其环境的最新状态?
当一个工作进程死亡时,我需要读取该自定义变量,但是当一个工作进程死亡时,我无法再访问它的环境对象。
至此,我尝试过以下方法:
var cluster = require('cluster'),
os = require('os');
if (cluster.isMaster) {
cluster.on('exit', function (worker, code, signal) {
console.log('worker ' + worker.process.pid + ' died');
var x = {
workerId: worker.process.env.workerId // This is undefined.
};
cluster.fork(x);
});
for (var i = 0; i < os.cpus().length; i++) {
var x = {
workerId: i
};
cluster.fork(x);
}
}
else {
console.log("workerId: ", process.env.workerId);
// simulate an exeption:
throw "fakeError";
}
我知道这样做行不通,我的问题是:如何在worker死亡之前访问其环境的最新状态?