如何在 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
我有一个 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