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

How do I setup a background process on a express.js app hosting on Azure websites?

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

node listen

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

node app.js

启动服务器。

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

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

因此,与其在 listen.js 中让您的代码仅在顶层执行,不如将其放入命名函数中并导出:

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

module.exports = populateDatabase;

然后在 app.js 中,您可以将其与 setInterval 或您选择的节点 scheduling/cron 模块连接起来:

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