Web アプリケーションがトリガーされるたびに tomcat コンテナーに自動デプロイする bash スクリプトを作成しました。それはかなり簡単です:
- バックアップのために現在のデータベースをダンプします
- 現在の tomcat プロセスをシャットダウンします
- Web アプリケーション フォルダーを削除します。
- warファイルを新しいものに置き換えます
- tomcat を再起動します。
ただし、今はフォールバックが必要です。起動プロセスに問題がある場合は、データベースが復元され、古い war ファイルが再度デプロイされます。
私の問題は、いつ Web アプリケーションの起動に失敗したかがわからないことです。私の実装の 1 つは、Web アプリケーションのログ ファイルのサイズを確認することです。しばらくしても増加しない場合 (つまり、何も書き込まれないことを意味します)、システムはデプロイが失敗したことを認識し、古い Web アプリケーションを復元します。ただし、これはちょっと汚いので、ログファイルがその時点で正しくロールされたらどうなるかわかりません。
Tomcat には、Web アプリケーションの起動失敗の検出をサポートするメカニズムがありますか?