我是靠谱客的博主 专一草莓,最近开发中收集的这篇文章主要介绍[cron、schedule] 解决pm2 cluster 模式启动导致定时任务多次执行的问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

描述

  • 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] 解决pm2 cluster 模式启动导致定时任务多次执行的问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部