node.js を使用してアプリケーションを構築しており、そのアプリケーションは Tomcat サーバーと通信します。Tomcat サーバーが起動している間、Tomcat の準備ができていて起動しているかどうかはわかりません。今のところ、Windows と Mac で CURL と WGET を 2 秒のタイムアウトで使用して、localhost:8080 が起動しているかどうかを確認し続けます。
CURL と WGET に頼らずにこれを行うより良い方法はありますか?
node.js を使用してアプリケーションを構築しており、そのアプリケーションは Tomcat サーバーと通信します。Tomcat サーバーが起動している間、Tomcat の準備ができていて起動しているかどうかはわかりません。今のところ、Windows と Mac で CURL と WGET を 2 秒のタイムアウトで使用して、localhost:8080 が起動しているかどうかを確認し続けます。
CURL と WGET に頼らずにこれを行うより良い方法はありますか?
推奨される方法は、Tomcat アプリケーションでハートビート サービス (つまり、起動時に OK を送信する単純なサービス) を作成し、それを x 秒ごとにポーリングすることです。
アプリケーションの実行中の監視には、ハートビート サービスが不可欠です。また、ポートで既にリッスンしていても、アプリケーションの準備ができていない場合もあります (重い初期化が行われているため)。
ただし、他の方法もあります。同じサーバー上にいる場合は、「サーバー開始」行を受信するまで catalina.out を追跡できます。
Tomcat アプリケーションをセットアップして、サーバーが起動していることをサーバーに通知するか (Tomcat が node.js サーバーの URL を知る必要があることを意味します)、または登録できるある種のメッセージ キュー (ApacheMq など) をセットアップすることができます。 Tomcat が起動すると、2 つのサービス間のプッシュ メッセージも許可されます。