Node.js 在 Cloud Foundry 中使用调度程序和多个实例

Node.js with scheduler and multiple instances in Cloud Foundry

我想在 Cloud Foundry 的多个实例中有一个 Node.js 应用程序 运行。 该应用程序有一个调度程序 ("node-schedule": "^0.2.7"),它每分钟将状态写入 mongo-db 一次。现在有了应用程序的多个实例,我在数据库中得到了多个条目——每个实例一个。 我正在寻找同步实例的方法,以确保只有一个实例 "gets the lock" 每分钟写入一次数据库。我已经找到了使用单例框架或中间件的建议,但它们是以请求为中心的,而不是应用程序的 "from the inside" - 调度程序。

有解决办法吗?

每个应用程序实例都将设置一个环境变量 CF-INSTANCE-INDEX,以公开实例索引。您可以只让索引为“0”的实例负责调度日志条目。

http://docs.run.pivotal.io/devguide/deploy-apps/environment-variable.html#CF-INSTANCE-INDEX