為何我的應用程式重新啟動?

我的應用程式正在執行中,但我看到應用程式實例已重新啟動。

當應用程式重新啟動時,Code Engine 會自動啟動應用程式的新實例。 當新應用程式實例標示為 Ready 時,Code Engine 會將資料流量遞送至其中。

如果您的應用程式重新啟動,請判斷下列其中一種情況是否為 true。

  1. 發生異常狀況,且未在您的應用程式原始碼中處理。

  2. 您的 Code Engine 系統記憶體配置受限於資源。 例如,每個實例的記憶體設定設定太低,因此實例會因記憶體不足錯誤而經歷重新啟動。 或者,已達到暫時儲存體限制。

  3. 因為 Code Engine 是完全受管理的 IBM Cloud 環境、應用程式及其他 Code Engine 工作量可能會重新定位至其他實體位置; 例如,套用安全修正程式。 鑒於環境的受管理本質,這些類型的變更可以隨時發生。 當您使用已部署的應用程式時,此類型的動作可能會導致應用程式重新啟動。

    在維護期間,會 重新定位執行中的應用程式實例,這表示會刪除執行中的實例,並建立新的實例。 發生此情況時,重新啟動計數會重設為 0。 應用程式實例的經歷時間是此實務範例的良好指標。

嘗試其中一種解決方案。

  1. 如果發生異常狀況,請採取下列動作。

    • 請檢查是否有訊息可協助您判斷發生什麼情況。 如果您設定 Code Engine的記載,則日誌檔可能包含訊息。 如需記載的相關資訊,請參閱 檢視日誌
    • 更新應用程式原始碼並建置已更新的容器映像檔之後,請透過 更新應用程式 來建立應用程式的新修訂。
    • 使用應用程式實例的詳細視圖來協助您對應用程式進行疑難排解。 使用 Code Engine 主控台來檢視應用程式實例的詳細資料。 請參閱 取得應用程式實例的詳細資料
  2. 如果應用程式受限於記憶體資源,請採取下列動作。

  3. 一般而言,在受管理 Code Engine 環境中,您無法依賴特定應用程式實例來執行而不會岔斷。 您可以確保應用程式遵循 12 因素應用程式方法,以避免在這些類型的系統升級期間關閉應用程式。 請參閱 為何我的應用程式停止執行?