【发布时间】:2013-10-20 14:43:46
【问题描述】:
发生异常时如何重新启动我的应用程序?
process.on('uncaughtException', function(err) {
// restart app here
});
【问题讨论】:
标签: javascript node.js
发生异常时如何重新启动我的应用程序?
process.on('uncaughtException', function(err) {
// restart app here
});
【问题讨论】:
标签: javascript node.js
您可以将该进程作为另一个进程的分支运行,因此如果它死了,您可以对其进行分支。为此,您可以使用本机 Cluster 模块:
var cluster = require('cluster');
if (cluster.isMaster) {
cluster.fork();
cluster.on('exit', function(worker, code, signal) {
cluster.fork();
});
}
if (cluster.isWorker) {
// put your code here
}
这段代码产生了一个工作进程,如果工作进程中抛出错误,它将关闭,退出将重新产生另一个工作进程。
【讨论】:
你有几个选择..
process.on('uncaughtException', function (err) {
console.log(err);
//Send some notification about the error
process.exit(1);
});
使用启动您的应用程序
nodemon ./server.js
forever server.js start
这种方法涉及一个进程集群,如果主进程杀死了任何子进程,则主进程会重新启动它们
var cluster = require('cluster');
if (cluster.isMaster) {
var i = 0;
for (i; i< 4; i++){
cluster.fork();
}
//if the worker dies, restart it.
cluster.on('exit', function(worker){
console.log('Worker ' + worker.id + ' died..');
cluster.fork();
});
}
else{
var express = require('express');
var app = express();
.
.
app.use(app.router);
app.listen(8000);
process.on('uncaughtException', function(){
console.log(err);
//Send some notification about the error
process.exit(1);
}
}
【讨论】: