【发布时间】:2016-05-02 12:40:05
【问题描述】:
我有一个 Node.js 应用作为 Microsoft Azure 上的应用服务托管。它会定期关闭。我试图了解这种情况何时发生。为了做到这一点,我正在给自己发送一封关于某些事件的电子邮件。
目前,当应用启动时,我会向自己发送一封电子邮件。然后,我尝试在应用服务停止时发送电子邮件。我正在尝试使用以下代码:
const app = require('./app');
const port = 1337;
const server = app.listen(port);
// Respond to the server starting.
server.on('listening', function() {
sendEmail('App Service - Listening', 'Web site server listening');
});
server.on('close', function() {
sendEmail('App Service - Closed', 'Web site server closed.');
});
process.on ('SIGTERM', function() {
sendEmail('App Service - Exited', 'Process exited (via SIGTERM)');
});
process.on ('SIGINT', function() {
sendEmail('App Service - Exited', 'Process exited (via SIGINT)');
});
process.on('exit', function() {
sendEmail('App Service - Exited', 'Process exited');
});
请假设sendEmail 函数存在并且有效。如前所述,当应用程序正在收听时,我成功地收到了一封电子邮件。但是,当应用进入睡眠状态/停止收听时,我从来没有收到过。
我错过了什么吗?
【问题讨论】:
-
可能是未处理的异常?
-
是否有一个事件我可以在应用程序/服务器级别捕获它?如果有,它叫什么?
-
您是否成功检测到 Windows 应用服务关闭?