多数のサービスがあり、他のサービスが読み込まれたときに利用できるように、最初に読み込まれることが予想されるコア サービス セットがあります。
Wildfly には、デプロイメント時に使用する特定の順序 (例: アルファベット順、ファイル名に基づく) がありますか? または、これを設定する方法はありますか?
他のサービスがまだ準備ができていない場合に接続を再試行するコードを追加しようとしましたが、スレッドが関係し、物事がアンデプロイされたときにスレッドが適切に終了されないことがありました。
私にとってうまくいかないことがいくつかあります:
- 可能です.ear 内のモジュール (ejb、war など) のデプロイメント順序を制御します。しかし、私は .ear デプロイメントの順序を制御することに興味があります。
- .ear は別の .ear の依存関係として設定できます。しかし、私たちのサービスはさまざまなリージョンにデプロイされています。serviceA-regionA-1.0.0.ear、serviceA-regionB-1.0.0.ear などがあります。これらすべての ear 名を指定するのは非常に面倒です。
答え1
Wildfly (AS7 以降) は、プロセスを高速化するために並列デプロイメントを試行します。順次デプロイメントを実行する場合は、各デプロイメントの依存関係を別のデプロイメントに提供できます (質問で提供したリンクなど)。
あるいは、管理 CLI を使用してデプロイメント スケジュールを順序付けし、バッチ機能を使用して、スクリプトで記述された順序でデプロイメントが実行されるようにすることもできます。また、コマンドまたは操作の少なくとも 1 つが失敗した場合は、バッチ内の正常に実行された他のすべてのコマンドと操作がロールバックされます。
参照: