Я работаю над сервером Node JS (0.10.30) вместе с его функцией кластера. Каждый раз, когда рабочий завершает работу, я перехватываю событие «выход» и перезапускаю нового рабочего. Я хотел бы также зарегистрировать (в главном кластере) причину, по которой рабочий был прекращен, например. Исключение или фатальная ошибка.
Как это сделать?
Мой файл app.js выглядит примерно так:
var cluster = require('cluster');
var numCPUs = 2;
if (cluster.isMaster) {
for (var i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('exit', function(worker, code, signal) {
console.log('worker %d died. Starting a new worker:', worker.id);
cluster.fork();
});
} else {
var domain = require('domain');
var d = domain.create();
d.on('error', function(er) {
console.error('error: ', er.stack);
// I never get the memory fatal error here
});
d.run(function() {
// The memory runs out in an async call
});
}
Спасибо, Эрез