ringa_lee2017-04-17 11:08:17
Node 是單進程,有異常容易crash掉整個進程,,所以要做好異常處理,相對forever,更推薦 pm2,單進程掛了就不能服務,pm2 一個參數就可以啟動多個進程服務(不用寫任何代碼!!!),一個掛了還有其他的可以服務,pm2也會監控進程的狀態。
https://github.com/Unitech/pm2
http://devo.ps/blog/2013/06/26/goodbye-node-forever-hello-pm2.html
怪我咯2017-04-17 11:08:17
建議查下日誌。如果日誌不夠詳細,可以考慮修改程序,把error等都log下來,最簡單的做法是用console.log。
另外,forever 可以自動重啟服務。
ringa_lee2017-04-17 11:08:17
node的單線程導致了一旦遇到錯誤就會直接宕掉,而且由於其事件隊列的機製,用try,catch經常抓不到錯誤,所以每個回調函數的err都要確定好處理錯誤的函數,最好能專門定義一係列異常事件來專門處理異常。
forever確實可以自動重啟服務,不過不知道是不是我用的有問題,之前用它搭網站的時候,一旦出錯,服務雖然會重啟,但是session什麼的都會丟失,很頭疼...