如何在Azure网站上托管的express.js应用程序上设置后台进程?

时间:2015-03-18 00:04:58

标签: node.js azure deployment

我有一个当前在Azure上运行的Express应用程序。它工作得很好,但我的Express应用程序有一个连接到流API并填充数据库的服务。此服务需要它自己的过程。通常当我在本地托管时,我只需输入

node listen

开始流式传输,然后打开另一个窗口并输入

node app.js

启动服务器。

但是如何在Azure上启动我的节点应用程序时这样做?

1 个答案:

答案 0 :(得分:2)

我建议您将导入过程转换为进程内后台作业,这在非群集节点应用程序中是微不足道的。您可以通过the cron npm module或许多类似模块之一进行调度。只需将导入例程编码为函数即可。

因此,不要在listen.js中让代码只执行顶层,而是将其放入命名函数并导出它:

function populateDatabase() {
  //connect to streaming API
  //populate database
}

module.exports = populateDatabase;

然后在app.js中,您可以使用setInterval或您选择的节点调度/ cron模块进行连接:

//app.js
var populateDatabase = require("./listen");
setInterval(60 * 1000, populateDatabase);
// rest of app setup/start code