Azure应用服务 - 检测关机

时间:2016-05-02 12:40:06

标签: node.js azure

我有一个Node.js应用程序作为Microsoft Azure上的App Service托管。它会定期关闭。我试图了解这种情况何时发生。为了做到这一点,我发送了一封关于某些事件的电子邮件。

目前,我在应用启动时向自己发送电子邮件。然后,我尝试在应用服务停止时发送电子邮件。我尝试使用以下代码:

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功能存在且有效。如上所述,我在应用正在收听时成功收到了一封电子邮件。但是,当应用程序进入睡眠/停止聆听时,我从未收到过。

我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

这可能是一个未被捕获的例外,请尝试抓住它们:

   process.on('uncaughtException', function(err) {
      console.log(err);
   });

答案 1 :(得分:0)

如果您的邮政编码托管在Azure Web Apps上,则需要修改 cur.execute("""SELECT to_char(ShopOrder.OrderDate,'YYYY-MM') AS "Order Date", Book.BookID, Book.title, COUNT(ShopOrder.ShopOrderID) AS "Total number of order", SUM(Orderline.Quantity) AS "Total quantity", SUM(Orderline.UnitSellingPrice * Orderline.Quantity) AS "Total selling value (Order value)", SUM(Book.Price * Orderline.Quantity) AS "Total selling value(Retail value) FROM ShopOrder LEFT JOIN Orderline ON Orderline.ShopOrderID = ShopOrder.ShopOrderID LEFT JOIN Book ON Book.BookID = Orderline.BookID LEFT JOIN Publisher ON Publisher.PublisherID = Book.PublisherID Where Publisher.name = %s ORDER BY MIN(ShopOrder.OrderDate)""", [publisherName]) port以使您的node.js应用程序在Azure上运行。

Azure Web Apps使用IIS处理映射脚本,并使用管道端口转换http请求。 Azure Web Apps仅向公众公开80和443端口。

与此同时,您可以将process.env.port修改为prot,以使其同时运行Azure和本地。

更新

  

始终开启。默认情况下,如果Web应用程序闲置一段时间,则会将其卸载。这使系统可以节省资源。在基本模式或标准模式下,您可以启用始终开启以始终保持应用加载。如果您的应用运行连续的Web作业,则应启用始终开启,否则Web作业可能无法可靠运行。

您可以在Azure门户上配置此设置: enter image description here

请参阅https://azure.microsoft.com/en-us/documentation/articles/web-sites-configure/了解更多信息。

相关问题