发生未捕获的异常时重新启动 Node.js 应用程序
Restart Node.js application when uncaught exception occurs
发生异常时,如何重新启动我的应用程序?
process.on('uncaughtException', function(err) {
// restart app here
});
您可以将该进程作为另一个进程的分支运行,因此如果它死亡,您可以对其进行分支。为此,您可以使用本机群集模块:
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
}
此代码生成一个工作进程,如果在工作进程中引发错误,它将关闭,退出将重新生成另一个工作进程。
你有几个选择。
- 使用像nodemon/forever这样的监视器重新启动应用程序
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);
});
}
结帐节点和永远。我使用 nodemon 进行开发,永远用于生产。就像一个魅力。只需使用 nodemon app.js
启动您的应用程序即可。
相关文章:
- 当我在重新启动cordova应用程序后尝试添加更多数据时,lokijs会丢失数据库和收集中的数据
- 重新启动jquery脚本后,角度停止工作
- Chrome内容脚本制作cookie;chrome重新启动时,cookie会被删除.如何使其稳定
- WebStorm,使用Node Supervisor(因此不必在每次代码更改后重新启动)
- Node SocketIO以编程方式强制在损坏的套接字上重新启动
- 如何更新服务器's的内容而不重新启动?(node.js)
- 在node.js中优雅地重新启动
- 跨Node.js重新启动持久化setTimeout和setInterval
- node dev script.js没有自动重新启动服务器
- 重新启动node.js
- 在node-dev下检测应用程序重新启动
- LearnBoost的Up for Node.js似乎无法正确重新启动我的应用程序
- 发生未捕获的异常时重新启动 Node.js 应用程序
- Node.js 集群主进程在得到 kill 和 pgrep 后重新启动
- 如何重新启动Node.js子进程
- Node.js -如何备份变量到一个文件,并在服务器重新启动时重新获得它
- 从代码级重新启动node.js应用
- Node.js服务器重新启动时套接字ID会发生什么
- 如何通过grunt-nodemon重新启动node.js服务器时输出时间戳
- Node.js了解如何重新启动失败的作业