【发布时间】:2015-03-22 11:56:38
【问题描述】:
我开始使用 nodeJS 并且已经有一个永远运行的脚本。当永远/节点崩溃时,是否有可能获得通知(电子邮件)?在 Ubuntu 12.04 上运行。 非常感谢
【问题讨论】:
-
当网站关闭时,有许多在线服务会通知您。这可能是一个简单的解决方案。
-
不是网站,只是服务或端口
我开始使用 nodeJS 并且已经有一个永远运行的脚本。当永远/节点崩溃时,是否有可能获得通知(电子邮件)?在 Ubuntu 12.04 上运行。 非常感谢
【问题讨论】:
我建议使用进程对象的事件来处理有关应用程序崩溃或关闭时的通知。 你可以阅读更多关于这个here
process.on('SIGINT', function() {
//Notification code when application process is killed
});
process.on('uncaughtException', function(err) {
//Notification code when application gets uncaught Exception
});
【讨论】:
您可以使用节点域http://nodejs.org/api/domain.html 来捕获异常并执行您需要的操作。 电子邮件示例:
var d = require('domain').create();
var nodemailer = require('nodemailer');
var transporter = nodemailer.createTransport({
service: 'Gmail',
auth: {
user: 'gmail.user@gmail.com',
pass: 'userpass'
}
});
d.on('error', function(er) {
var mailOptions = {
from: 'Fred Foo ✔ <foo@blurdybloop.com>',
to: 'bar@blurdybloop.com, baz@blurdybloop.com',
subject: 'Crash',
text: er,
};
transporter.sendMail(mailOptions, function (err) {});
});
d.run(function() {
// here all dangerous logic
});
【讨论】: