描述
- pm2 cluster 启动项目如果其中有定时任务, 这个定时任务在每个worker中都会执行一遍, 可能会有性能浪费或导致一些问题
解决
- pm2 启动会默认自带一个 'NODE_APP_INSTANCE' 的环境变量, 它从 0 开始自增, 永远不能能重复, 每一个worker拥有一个值
- 程序中启动定时任务, 或者执行方法的时候判断下 if(process.env.NODE_APP_INSTANCE === '0'){// TO DO ...} 这样就可以在某个worker里执行一次
- 也可以在pme.json中重命名该变量名称 instance_var: 'INSTANCE_ID'
*技巧: pm2的自增变量是从0开始, 可以根据id判断从而启动一个或者多个(id== 0 || id==1)
官网传送
感谢您的阅读!如果文章中有任何错误,或者您有更好的理解和建议,欢迎和我联系!
最后
以上就是专一草莓最近收集整理的关于[cron、schedule] 解决pm2 cluster 模式启动导致定时任务多次执行的问题的全部内容,更多相关[cron、schedule]内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复