欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

node后端服務(wù)?;畹膶?shí)現(xiàn)

引言

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比介休網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式介休網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋介休地區(qū)。費(fèi)用合理售后完善,10余年實(shí)體公司更值得信賴。

目前的項(xiàng)目中使用了node,作為一個(gè)簡(jiǎn)單的后端服務(wù),隨著承擔(dān)著越來(lái)越多的線上業(yè)務(wù)的服務(wù),就要求了服務(wù)端的穩(wěn)定性,而其中最重要的一點(diǎn)就是服務(wù)?;?。有進(jìn)程終止后自動(dòng)重啟的能力。

forever

forever是一個(gè)簡(jiǎn)單的命令行工具,他能確保一個(gè)給定的腳本持續(xù)運(yùn)行。forever完全基于命令行操作,在forever進(jìn)程之下,創(chuàng)建node的子進(jìn)程,通過(guò)monitor監(jiān)控node子進(jìn)程的運(yùn)行情況,一旦文件更新,或者進(jìn)程掛掉,forever會(huì)自動(dòng)重啟node服務(wù)器,確保應(yīng)用正常運(yùn)行。

所以就看一下forever的項(xiàng)目吧。主要的進(jìn)程控制方面的代碼地址。

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,創(chuàng)建子進(jìn)程,這個(gè)子進(jìn)程就是我們真正的需要運(yùn)行的node端服務(wù)。

自動(dòng)restart

父子進(jìn)程的通信核心就是為了?;?,主要就是監(jiān)聽了子進(jìn)程,也就是需要被守護(hù)進(jìn)程的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();
  }
 });

邏輯很簡(jiǎn)單,分別兩個(gè)場(chǎng)景,一個(gè)是希望子進(jìn)程不要再啟動(dòng),一般就是外部控制殺死的;一個(gè)是意外退出后的重啟,此處與一個(gè)spinning值的判斷,也就是在退出后存在一個(gè)重啟的時(shí)間間隔。

父子進(jìn)程通信

message事件來(lái)監(jiān)聽,用send方法來(lái)發(fā)送事件,父子進(jìn)程通信就可以用做外部的控制的實(shí)現(xiàn)了。這里我們還需要注意一個(gè)細(xì)節(jié),就是node后端服務(wù)運(yùn)行中會(huì)輸出很多的日志,此時(shí)放在子進(jìn)程中的控制臺(tái)輸出,如果希望暴露出來(lái)就可以使用options.stdio屬性。

總結(jié)

?;畹膱?chǎng)景很多,這里可以使用forever庫(kù)來(lái)處理,配合監(jiān)控和日志功能,更好的保證線上環(huán)境的穩(wěn)定。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

分享標(biāo)題:node后端服務(wù)?;畹膶?shí)現(xiàn)
網(wǎng)站URL:http://aaarwkj.com/article0/jegsio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、網(wǎng)站導(dǎo)航品牌網(wǎng)站制作、品牌網(wǎng)站建設(shè)網(wǎng)站改版、網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)
91久久精品中文字幕| 在线亚洲精品一区二区| 日韩国产推荐一区二区| 亚洲国产欧美一区三区成人| 91亚洲蜜桃内射后入在线观看| 国产大学生露脸在线视频| 亚洲欧美日韩1区2区| 丰满多毛熟妇的大阴户| 午夜欧美日韩精品久久久| av影片免费网址大全| 亚洲男人天堂黄色av| 国产亚洲加勒比久久精品| 亚洲性码不卡视频在线| 日韩黄色一级片免费看| 国产综合亚洲欧美日韩在线| 老熟女乱色一区二区三区| 久久综合婷婷亚洲五月| 国产综合亚洲欧美日韩| 亚洲成熟中老妇女视频| 在线国产精品中文字幕| 日本加勒比系列在线播放| 亚洲一区欧美日韩91| 久久热这里只有视频精品| 香蕉视频在线观看亚洲精品| 国产精品久久中文字幕亚洲| 给我搜亚洲免费播放黄色大片| 少妇高潮在线观看免费| 婷婷亚洲悠悠色悠在线| 色偷拍亚洲偷自拍二区| 国产激情av网站在线观看| 亚洲日本精品国产第一区| 日本不卡视频二区三区| 亚洲精品色婷婷一区二区| 亚洲欧美高清一区二区| 美国一级二级三级黄片| 九九九热在线免费视频| 亚洲成av在线免费不卡| 国产精品三级av在线播放| 免费在线av一区二区| 日韩欧美第一页在线观看| 曰韩精品一区二区三区乱码|