[英]How does Node.JS in App Engine Standard handle crashes?
當節點中的功能崩潰時,它往往會導致整個應用程序崩潰。 像pm2之類的解決方案和/或具有用於未捕獲異常的全局偵聽器的解決方案可以緩解這種情況。
在AppEngine 標准 NodeJS中如何處理? 如果發生未捕獲的異常-它們是否會自動恢復(並記錄)-允許其他功能仍然運行,還是必須做一些手動工作來處理這種情況?
如果您的Node.js應用程序崩潰,則AppEngine會將其錯誤記錄在其日志記錄機制中,然后重新啟動。 如果仍然崩潰,它將標記為不健康的應用程序:
Google App Engine Node.js應用程序不正常
如果您不想依賴AppEngine,可以隨時將此代碼段添加到所有Node.js應用程序中:
const someFn = // do something to handle exceptions
process.on("unhandledRejection", someFn );
雖然我建議不要這樣做。
就我個人而言,我更喜歡將計算機安裝在Google Cloud中(沒有AppEngine),並為我提供一台服務器,在那里我可以擁有PM2,並可以在其中為其添加所需的香料,但是如果您投資於AppEngine,那是最好的選擇你可以做。
您需要記住的另一件事是,即使GAE記錄了錯誤, 您也確實有日志限制 ,因此,如果您的應用程序一直崩潰,那么最終您會遇到問題。
另外,在您的代碼中使用Monads( 咳嗽咳嗽保護區/ Folktale)會迫使您處理異常,這也有助於:P
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.