我的问题是如何使用 node-schedule 仅在 Node 服务器的两个实例中的一个实例上运行 cron。 目前它在两个实例上运行,但我希望它只在一个实例上执行。 那么如何让集群只运行一次任务呢? 提前致谢。
{
"apps": [
{
"name": "Example",
"script": "boot/app/app.js",
"watch": false,
"exec_mode": "cluster_mode",
"instances": 2,
"merge_logs": true,
"cwd": "/srv/www.example.com/server",
"env": {
"NODE_ENV": "development",
.......
.......
}
}
]
}
最佳答案
您可以使用 PM2 本身提供的名为 NODE_APP_INSTANCE
的环境变量,它需要 PM2 2.5。
NODE_APP_INSTANCE
环境变量用于确定进程之间的差异,例如您可能只想在一个进程上运行 cronjob,您可以只检查 process.env.NODE_APP_INSTANCE === 0,因为两个进程永远不会有相同的编号。
有关 PM2 官方文档的更多信息 here .
关于node.js - 如何使用 node-schedule 仅在一个实例上运行 cron?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40422589/