发生异常时,我如何重新启动我的应用?
process.on('uncaughtException', function(err) { // restart app here });
4ioopgfo1#
你可以把这个进程当作另一个进程的fork来运行,这样你就可以在它死了的时候再把它fork,你可以使用原生的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 }
这段代码生成一个辅助进程,如果在辅助进程中引发错误,它将关闭,退出将重新生成另一个辅助进程。
raogr8fs2#
你有几个选择..1.使用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
1.使用cluster重新启动这种方法涉及到一个进程集群,其中主进程重新启动任何子进程,如果他们杀死
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); }); }
57hvy0tb3#
checkout nodemon和forever。我使用nodemon进行开发,永远用于生产。工作起来很有魅力。只需用nodemon app.js启动你的应用程序。
nodemon app.js
3条答案
按热度按时间4ioopgfo1#
你可以把这个进程当作另一个进程的fork来运行,这样你就可以在它死了的时候再把它fork,你可以使用原生的Cluster模块来实现这个目的:
这段代码生成一个辅助进程,如果在辅助进程中引发错误,它将关闭,退出将重新生成另一个辅助进程。
raogr8fs2#
你有几个选择..
1.使用nodemon/forever之类的监视器重新启动应用程序
使用启动应用程序
1.使用cluster重新启动
这种方法涉及到一个进程集群,其中主进程重新启动任何子进程,如果他们杀死
57hvy0tb3#
checkout nodemon和forever。我使用nodemon进行开发,永远用于生产。工作起来很有魅力。只需用
nodemon app.js
启动你的应用程序。