我正在使用 nodejs 为 Web 服务构建离线缓存系统。基本上,它会不时轮询 Web 服务的公共方法,并将数据缓存在 memcached 中。工作得很好。
但是,我希望它是防弹的,并且可以在任何未捕获的异常中幸存下来,从而导致服务器崩溃。我已经阅读了有关不同方法的信息,并且我相信集群模块非常适合我的需求。但是,我不会将所有 CPU 内核用于我的目的,因为我只有 1 个线程在运行和更新缓存。
我将使用它的唯一原因是允许优雅地杀死工人并轻松分叉一个新的
var memwatch = require('memwatch'),
cluster = require('cluster');
if (cluster.isMaster) {
console.log('start cluster with 1 workers');
cluster.fork();
cluster.on('exit', function(worker) {
console.log('worker %s died. restart...', worker.process.pid);
cluster.fork();
});
} else {
var http = require('http'),
app = require("./app.js");
http.createServer().listen(9000);
app.init();
}
process.on('uncaughtException', function (err) {
console.error((new Date).toUTCString() + ' uncaughtException:', err.message)
console.error(err.stack)
process.exit(1)
})
memwatch.on("leak", function(){
console.log("leak detected");
});
您认为这是解决我的问题的正确方法吗?
谢谢