范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

node后端服务保活

  引言
  目前的项目中使用了node,作为一个简单的后端服务,随着承担着越来越多的线上业务的服务,就要求了服务端的稳定性,而其中最重要的一点就是服务保活。有进程终止后自动重启的能力。 forever
  forever是一个简单的命令行工具,他能确保一个给定的脚本持续运行。forever完全基于命令行操作,在forever进程之下,创建node的子进程,通过monitor监控node子进程的运行情况,一旦文件更新,或者进程挂掉,forever会自动重启node服务器,确保应用正常运行。
  所以就看一下forever的项目吧。主要的进程控制方面的代码地址。 start方法let child_process = require("child_process") let spawn = child_process.spawn  Monitor.prototype.start = function (restart) {   var self = this,       child;    child = this.trySpawn();    ...   return this; }; Monitor.prototype.trySpawn = function () {   var run = this.parser(this.command, this.args.slice()),       stats;    return spawn(run.command, run.args, this.spawnWith); };
  核心就是使用了node api 中的 spawn,创建子进程,这个子进程就是我们真正的需要运行的node端服务。 自动restart
  父子进程的通信核心就是为了保活,主要就是监听了子进程,也就是需要被守护进程的exit事件   child.on("exit", function (code, signal) {     var spinning = Date.now() - self.ctime < self.minUptime;     child.removeListener("message", onMessage);     self.emit("exit:code", code, signal);      function letChildDie() {       self.running = false;       self.forceStop = false;       self.emit("exit", self, spinning);     }      function restartChild() {       self.forceRestart = false;       process.nextTick(function () {         self.start(true);       });     }      self.times++;      if (self.forceStop || (self.times >= self.max && !self.forceRestart)       || (spinning && typeof self.spinSleepTime !== "number") && !self.forceRestart) {       letChildDie();     }     else if (spinning) {       setTimeout(restartChild, self.spinSleepTime);     }     else {       restartChild();     }   });
  逻辑很简单,分别两个场景,一个是希望子进程不要再启动,一般就是外部控制杀死的;一个是意外退出后的重启,此处与一个spinning值的判断,也就是在退出后存在一个重启的时间间隔。 父子进程通信
  message事件来监听,用send方法来发送事件,父子进程通信就可以用做外部的控制的实现了。这里我们还需要注意一个细节,就是node后端服务运行中会输出很多的日志,此时放在子进程中的控制台输出,如果希望暴露出来就可以使用options.stdio属性。 总结
  保活的场景很多,这里可以使用forever库来处理,配合监控和日志功能,更好的保证线上环境的稳定。
  转自:https://segmentfault.com/a/1190000020957321
  喜欢的话,点个赞吧~!

乞丐版iPhoneXR恢复少量现货,128G降了3100!对比国产怎么选?iPhone11128gb国行也就3600自2018年发布以来,iPhoneXR基本从未跌出过各大电商平台的苹果手机销量前三甲。不仅国人推崇这款产品,甚至连很多资深媒体评价它为苹果在闲鱼上买的二手音箱靠谱吗?第一次捡漏了,本地土豪急卖,我600块钱买了一对尊宝p290,(后来了解曾经近万元的音箱,二手行情也要1500左右)于是我开始买买买,突然发现家里摆不下了于是我变成了闲鱼卖家。成为有哪些好用的二手交易网站?哪个网上二手闲置交易平台更好用?卖二手闲置物品有哪些注意事项物质越来越丰富,家里大量闲置想处理怎么办?哪个网上二手闲置交易平台更好用?卖二手闲置物品有哪些注意事项呢?我的亲身经历聊顶级屏幕12GB256GB,跳水价3300元,三星手机值不值得买?顶级屏幕?你说是是三星S21Ultra的M11屏幕吗?12GB256GB,3300元?你脑子是不是进水了?还是喝了半斤工业酒精烧坏了?你已经不是在说胡话了而是满嘴喷粪啦!你还值不值刘作虎不再坚持,骁龙87065W降至冰点价,你还会买吗?这个也无奈啊。虽然问题没明说是哪款机型,从这里的关键要素看,应该是指的一加9R。12月9日,MOTOX30,S30发布了,除了成功地抢了小米等的首发外,价格更是令人惊愕,两款机型分第一个特斯拉婴儿诞生宾州女子车上分娩,丈夫开自动驾驶照顾如果说直立行走是地球生命演化史上第一次彻底解放双手,让人类获得了超越其它物种的绝对优势,从而奠定了智慧生命今天一枝独秀的格局的话,那么自动驾驶可能会第二次解放人类的双手,让我们将绝业界首例!华为又破冰新技术如今,随着科技的发展和社会的进步,我们日常生活的很多商品基本上发展都十分成熟。各大厂商之间的竞争也渐渐变为高科技的竞争。就比如我们所熟悉的手机,还有笔记本电脑。说起笔记本电脑,如今为什么找不到完美的相机?哪怕是相对完美摄影人常常有困惑,为何寻找不到自己能够基本满意,功能全面,经久耐用的相机?如果有,就不需要老是折腾升级换代了,既减少麻烦,又节约金钱,可以安心拍片就好了。究竟是世界上没有完美的东西设计理想家推荐好物之叮零可视门铃E3家门前的安全守护设计理想家由天猫鲁班之星,天猫家装城联手好好住app和芒果tv打造,是一档聚焦年轻人家装喜好,传递潮流设计美学的家装局改综艺,也是全国首档用户DIY爆改综艺。天猫家装未来建设空间站华为P50Pocket售价预测,纵向折叠屏卖这个价你能接受吗?近日华为终端官方微博宣布,华为P50Pocket将于12月23日发布。据爆料,华为P50Pocket或为华为首款纵向折叠旗舰,目前网络上已有华为P50Pocket疑似渲染图流出,I华为荣耀新机X30预售1499,有坑别买荣耀新机X30全网开始预售,最低6128GB只要1499元,最高8256GB价格1999元,我们先看配置参数尺寸6。81英寸屏幕2388x1080LCD处理器骁龙695刷新率120
苹果和国产的华为你会怎么选择?这几天刷视频,都在说买苹果13por,我就是想问问你们,苹果手机你们为什么会选择他,我不明白,一个赚着中国人的钱,的一个美国企业,他为中国做啦什么?而我们呢,在源源不断为美国提供资奥林巴斯方面对GalaxyS22的摄像头品牌合作不置可否围绕GalaxyS22系列有许多传言,其中一个谈到三星可能与相机制造商奥林巴斯合作,在即将推出的旗舰产品中引入其认证的相机,相比其它厂商这是三星第一次走上这样的道路,一直以来三星和低音炮音响哪个牌子音质好?我该怎么选择?如何判断呢?现如今,许多年轻人为了追求音乐的极致,往往会购买一些音质好的音响设备,其中就包括低音炮,低音炮扩放出来的声音浓厚沉重,而且音质效果非常好,深受人们的喜爱和认可。但是很多人肯定认为价发烧级蓝牙音箱哪款音质最好?价格多少合适呢?随着蓝牙音箱的不断升级和创新,现在的蓝牙音箱不仅体积小巧,而且外观精美,可以很好的展现音乐的魅力,所以许多场合都会使用蓝牙音箱。但是现在市面上的蓝牙音箱种类非常多,人们在选择蓝牙音工业4。0时代,华为或将形成全球第二个物联网生态品牌工业4。0的概念首先由德国在2013年的汉诺威工业博览会上提出。它被誉为继蒸汽革命电气革命和信息革命后,人类历史上的第四次工业革命智能革命。蒸汽革命从19世纪初期开始,历经70余年秦孝公为何把秦穆公拼死夺来的河西之地,拱手相让给魏国?秦孝公作为一名高明的政治家,自有其胆略和智慧。在洒满秦魏两国无数战士热血的河西之地,自古以来便是兵家必争之地。秦孝公暂时放缓了对河西之地的进攻,既有为秦国变法强大的原因,也有当时的年末发布!MIUI13曝光更简洁,更流畅今年是小米关键的一年,在这一年小米通过线上线下同步发力,在前不久拿下了全球手机销量第二的好成绩,同时也拿下了欧洲销量第一的宝座。但在看似一片形势大好的情况下也潜伏着不小的危机,小米AppleTV有什么用?我用一年总结了这5点今天这篇咱们来聊聊AppleTV在国内可以有哪些用途。电视盒子大家肯定不陌生,小米盒子,天猫盒子什么的几乎人手一个。而现在大部分电视机都基于安卓系统,会内置各种视频平台软件,比如银互联网平台互联互通,棒子不能只打即时通讯近期,工信部等主管部门聚焦互联网服务之间的互联互通,并对一些服务的互联互通提出了具体的要求。据说,9月17日,即时通讯工具必须解除屏蔽对链接的屏蔽,否则将依法查处。1互联互通是全球助听器取下来听力会有变化吗?您好,我们的耳朵是喜欢热闹的,如果这时把助听器取下来,耳朵突然回到安静的状态就会不适应,所以使用者才会觉得自己听力下降了,如果进行听力复查,就会发现听力是没有下降的,如果使用者本身弹窗广告删不掉?一招让你彻底和它们说再见打开电脑总是出现许许多多的弹窗广告,关了又出来,就像家里的小强一般,烦不胜烦想彻底告别这些弹窗广告?不要9998,也不要19998,只有大家耐心将文章看完就会了,闲话不多说,整起!