在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ 如何防止node.js進(jìn)程掛掉

如何防止node.js進(jìn)程掛掉

問(wèn)題描述

node.js開(kāi)發(fā)游戲服務(wù)器,如果遇到了對(duì)象屬性沒(méi)有定義,或者數(shù)據(jù)庫(kù)等操作報(bào)錯(cuò),進(jìn)程容易掛掉

問(wèn)題出現(xiàn)的環(huán)境背景及自己嘗試過(guò)哪些方法

試過(guò)try catch 但是這個(gè)異步不能捕獲,如果想捕獲異步,還要再異步那邊再捕獲異常,有點(diǎn)繁瑣。
也用過(guò)forever守護(hù)進(jìn)程,這樣進(jìn)程掛掉會(huì)再起,但是因?yàn)槲覀冏龅挠螒?,有好多?shù)據(jù)保存在內(nèi)存里,重啟之后內(nèi)存里的數(shù)據(jù)沒(méi)了。

相關(guān)代碼

// 請(qǐng)把代碼文本粘貼到下方(請(qǐng)勿用圖片代替代碼)

你期待的結(jié)果是什么?實(shí)際看到的錯(cuò)誤信息又是什么?

希望大神提供思路或者方法如何做到,全局捕獲異常,能保證進(jìn)程不掛。
回答
編輯回答
擱淺

NodeJS 服務(wù)部署至服務(wù)器時(shí)需要開(kāi)啟 Daemon 模式,即進(jìn)程始終運(yùn)行于后臺(tái)。

若拋出的異常未被 try {} catch (err) {} 捕獲,uncaughtException 事件處理程序可防止進(jìn)程直接退出。但一些底層錯(cuò)誤引發(fā)的進(jìn)程崩潰,uncaughtException 便不再適用。

可使用 PM2 實(shí)現(xiàn) NodeJS 服務(wù)的進(jìn)程管理。當(dāng)進(jìn)程異常退出時(shí),PM2 會(huì)嘗試重啟進(jìn)程保證服務(wù)的穩(wěn)定運(yùn)行。

但:有好多數(shù)據(jù)保存在內(nèi)存里,重啟之后內(nèi)存里的數(shù)據(jù)沒(méi)了???

2017年11月5日 22:30
編輯回答
大濕胸

掛了還不能重啟? --- 有好多數(shù)據(jù)保存在內(nèi)存里,重啟之后內(nèi)存里的數(shù)據(jù)沒(méi)了

2017年11月28日 12:18
編輯回答
心上人

有bug就修bug啊,想辦法把bug掩蓋過(guò)去不是不可以,但遲早要出事的

2017年4月13日 22:24
編輯回答
半心人
process.on('uncaughtException', function (err) {
    console.log('Caught exception: ' + err);
});
2018年7月5日 16:48