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
});
}
ありがとう、エレズ