我这边可以在程序中新增一个告警逻辑,初步是发邮件通知我自己,后续可以加上短信通知。
但是我想知道能否在pm2的脚本中,增加这么一段逻辑,监听process.on('exit')等异常情况,去访问我的告警逻辑呢?
看过PM2官网的相关api,发现更多的pm2对运行中的process发消息,而不是我想要的这种情况。当然ali-node有成熟的方案,但是我这边由于主机网络、环境的限制并不能用这个方案
我这边可以在程序中新增一个告警逻辑,初步是发邮件通知我自己,后续可以加上短信通知。
但是我想知道能否在pm2的脚本中,增加这么一段逻辑,监听process.on('exit')等异常情况,去访问我的告警逻辑呢?
看过PM2官网的相关api,发现更多的pm2对运行中的process发消息,而不是我想要的这种情况。当然ali-node有成熟的方案,但是我这边由于主机网络、环境的限制并不能用这个方案
通过监听process.on('exit')
来实现楼主的需求的话,存在潜在的问题,如果存在异步逻辑(比如发邮件、短信)的话,那异步逻辑是不会被执行的。
楼主可以对比下面两段代码,通过pm2
先后启动、重启应用,同时通过pm2 logs
查看实时日志,你会发现
process.on('exit')版本
var http = require('http');
http.createServer(function (req, res) {
res.end('hello');
}).listen(3000);
process.on('exit', function () {
console.log('程序猿小卡:before exit');
setTimeout(function () {
console.log('程序猿小卡:after 1 second');
}, 1000);
});
SIGINT版本
var http = require('http');
http.createServer(function (req, res) {
res.end('hello');
}).listen(3000);
process.on('SIGINT', function() {
console.log('程序猿小卡:before exit');
setTimeout(function () {
console.log('程序猿小卡:after 1 second');
process.exit();
}, 1000);
});
3 回答2.8k 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
1 回答1.3k 阅读✓ 已解决
2 回答758 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
2 回答1.8k 阅读
2 回答845 阅读✓ 已解决
那就自己写一个发短信或邮件的程序,见听到异常的时候就调用就好.