スプリングブートシャットダウンエンドポイントはorg.springframework.boot.actuate.endpoint.ShutdownEndpoint
というクラスを呼び出し、ApplicationContext
にclose()
を呼び出します。これは、順番に...
- はあなたの豆を注文され、慎重にシャットダウンする方法を記述した場合、これはあるべき埋め込まれたサーブレットコンテナ
を停止
はビーンファクトリ
を閉じ豆を破壊します良い。しかし、そうでない場合、シャットダウン・サイクルのある時点で、「3つのクライアントが実行しているジョブ」が中断される可能性があります。また、シャットダウンを起動してシャットダウンサイクルを開始するまでの間に、小さな時間帯に新しい接続を作成することも可能です。 Springは、シャットダウンサイクルに参加できるアプリケーションイベントとリスナーフックを提供します。 ContextClosedEvent
はあなたがデフォルトの動作のキックの前に、独自のシャットダウン動作を実装するためにこれを使用することができるように埋め込まれたコンテナがシャットダウンなどで、前に豆が破壊されて公開されている例:
public class ShutdownListener implements ApplicationListener<ContextClosedEvent> {
@Override
public void onApplicationEvent(ContextClosedEvent event) {
//
}
}
あなたがこのリスナーを実装することができ(あなたがHTTPリクエストを扱っていない場合またはそれと同等のもの)それ
- は、任意の機内ジョブが続行する前に完了できるように
- ポーズをHTTP 503との接続要求を拒否するようなシャットダウンサイクルで
このリスナーは、SpringブートでApplicationListenerを登録するのと同じ方法で登録します。
SpringApplicatiom app = new SpringApplication(MyApplication.class);
app.addListeners(new ShutdownListener());
「豆を破壊する」とはどういう意味ですか? –
@JoseMartinezそれはそれらを閉じたり破棄したりすることを意味します。 Springでは、アプリケーションコンテキストが閉じられたときにあなたに代わって呼び出すことを保証する 'destroy-method'を定義できるので、" destroy "という用語が使用されます。 – glytching
プログラムによるすべての接続を拒否する方法は? –