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

标签 node.js azure deployment

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

node listen

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

node app.js

启动服务器。

但是在 Azure 上启动 Node 应用程序时如何执行此操作?

最佳答案

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

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

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

module.exports = populateDatabase;

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

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

关于node.js - 如何在 Azure 网站上托管的express.js 应用程序上设置后台进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29111949/

相关文章:

android - 我们对 Cordova iOS/Android 移动应用程序使用什么 OAuth 2.0 重定向 URI?

c# - 如何删除 Azure 服务总线队列中的死信?

Azure 流量管理器不适用于标准 S1 的 Web 应用 : Small plan

java - 在 Java 中使用资源文件

Java EE 企业应用程序 : perform some action on deploy/startup

node.js - Bluebird promise 解决快速路线

c# - 将 .NET 与 nodejs(加密)进行比较时哈希值不同

node.js - 使用 npm 安装 mongodb 模块的问题

node.js - Angular:无法使用 ng-Command

mysql - 自定义操作无法安装 MySQL