クラス ReactorResourceFactory
- 実装されているすべてのインターフェース:
Aware、DisposableBean、InitializingBean、ApplicationContextAware、Lifecycle、Phased、SmartLifecycle
- 既知の直属サブクラス
ReactorResourceFactory
ApplicationContext のライフサイクル内で Reactor Netty リソース(イベントループスレッドの LoopResources、接続プールの ConnectionProvider など)を管理するファクトリ。 このファクトリは SmartLifecycle を実装し、通常は Spring 管理の Bean として宣言されることが予想されます。
SmartLifecycle の停止 / 再起動後、構成された LoopResources および ConnectionProvider の新しいインスタンスが作成されるため、それらへの参照を更新する必要があることに注意してください。
- 導入:
- 6.1
- 作成者:
- Rossen Stoyanchev, Brian Clozel, Sebastien Deleuze, Juergen Hoeller
フィールドのサマリー
インターフェース org.springframework.context.SmartLifecycle から継承されたフィールド
DEFAULT_PHASEコンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明voidaddGlobalResourcesConsumer(ConsumerSE<reactor.netty.http.HttpResources> consumer) 起動時にグローバル Reactor Netty リソースを構成するためのコンシューマーを追加します。voidApplicationContext の外部で初期化された場合はリソースを起動します。voiddestroy()ApplicationContext の外部で初期化された場合はリソースを停止します。reactor.netty.resources.ConnectionProvider設定されたConnectionProviderを返します。reactor.netty.resources.LoopResources設定されたLoopResourcesを返します。intgetPhase()このライフサイクルオブジェクトが実行されるはずのフェーズを返します。booleanこのコンポーネントが現在実行されているかどうかを確認します。booleanこのファクトリがグローバルHttpResourcesホルダーを公開するかどうか。voidsetApplicationContext(ApplicationContext applicationContext) ApplicationContextの設定はオプションです。設定すると、Reactor リソースはlifecycle startフェーズで初期化され、lifecycle stopフェーズで閉じられます。voidsetConnectionProvider(reactor.netty.resources.ConnectionProvider connectionProvider) これは、外部で管理されているConnectionProviderインスタンスを提供する場合に使用します。voidsetConnectionProviderSupplier(SupplierSE<reactor.netty.resources.ConnectionProvider> supplier) グローバルリソースに参加したくない場合や、管理対象のConnectionProviderの作成をカスタマイズしたい場合に、これを使用します。voidsetLoopResources(reactor.netty.resources.LoopResources loopResources) このオプションは、外部で管理されているLoopResourcesインスタンスを提供する場合に使用します。voidsetLoopResourcesSupplier(SupplierSE<reactor.netty.resources.LoopResources> supplier) グローバルリソースに参加したくない場合や、管理対象のLoopResourcesの作成をカスタマイズしたい場合に、これを使用します。voidsetShutdownQuietPeriod(DurationSE shutdownQuietPeriod) リソースをシャットダウンする前に待機する時間を設定します。voidsetShutdownTimeout(DurationSE shutdownTimeout) shutdownQuietPeriod中にタスクが送信されたかどうかに関係なく、基になるリソースが破棄されるまで待機する最大時間を構成します。voidsetUseGlobalResources(boolean useGlobalResources) HttpResourcesを介してグローバル Reactor Netty リソースを使用するかどうか。voidstart()このコンポーネントを起動します。voidstop()このメソッドを返すとコンポーネントが完全に停止するように、通常は同期的にこのコンポーネントを停止します。クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSEインターフェース org.springframework.context.SmartLifecycle から継承されたメソッド
isAutoStartup, stop
コンストラクターの詳細
ReactorResourceFactory
public ReactorResourceFactory()
メソッドの詳細
setUseGlobalResources
public void setUseGlobalResources(boolean useGlobalResources) HttpResourcesを介してグローバル Reactor Netty リソースを使用するかどうか。デフォルトは "true" です。この場合、このファクトリは Spring の
ApplicationContextライフサイクル内のグローバル Reactor Netty リソースを初期化および停止します。"false" に設定すると、ファクトリはグローバルリソースから独立してリソースを管理します。- パラメーター:
useGlobalResources- グローバルリソースを公開および管理するかどうか- 関連事項:
isUseGlobalResources
public boolean isUseGlobalResources()このファクトリがグローバルHttpResourcesホルダーを公開するかどうか。addGlobalResourcesConsumer
起動時にグローバル Reactor Netty リソースを構成するためのコンシューマーを追加します。このオプションを使用すると、setUseGlobalResources(boolean)も有効になります。- パラメーター:
consumer- 適用するコンシューマー- 関連事項:
setConnectionProviderSupplier
public void setConnectionProviderSupplier(SupplierSE<reactor.netty.resources.ConnectionProvider> supplier) グローバルリソースに参加したくない場合や、管理対象のConnectionProviderの作成をカスタマイズしたい場合に、これを使用します。デフォルトでは、
ConnectionProvider.elastic("http")が使用されます。isUseGlobalResources()がtrueの場合、またはConnectionProviderが設定されている場合は、このサプライヤーは無視されることに注意してください。- パラメーター:
supplier- 使用するサプライヤー
setConnectionProvider
public void setConnectionProvider(reactor.netty.resources.ConnectionProvider connectionProvider) これは、外部で管理されているConnectionProviderインスタンスを提供する場合に使用します。- パラメーター:
connectionProvider- そのまま使用する接続プロバイダー
getConnectionProvider
public reactor.netty.resources.ConnectionProvider getConnectionProvider()設定されたConnectionProviderを返します。まだ初期化されていない場合は、オンデマンドでリソースを遅延的に起動しようとします。
- 関連事項:
setLoopResourcesSupplier
グローバルリソースに参加したくない場合や、管理対象のLoopResourcesの作成をカスタマイズしたい場合に、これを使用します。デフォルトでは、
LoopResources.create("webflux-http")が使用されます。isUseGlobalResources()がtrueの場合、またはLoopResourcesが設定されている場合は、このサプライヤーは無視されることに注意してください。- パラメーター:
supplier- 使用するサプライヤー
setLoopResources
public void setLoopResources(reactor.netty.resources.LoopResources loopResources) このオプションは、外部で管理されているLoopResourcesインスタンスを提供する場合に使用します。- パラメーター:
loopResources- そのまま使用するループリソース
getLoopResources
public reactor.netty.resources.LoopResources getLoopResources()設定されたLoopResourcesを返します。まだ初期化されていない場合は、オンデマンドでリソースを遅延的に起動しようとします。
- 関連事項:
setShutdownQuietPeriod
リソースをシャットダウンする前に待機する時間を設定します。shutdownQuietPeriod中にタスクが送信された場合、そのタスクは受け入れられることが保証され、shutdownQuietPeriodが最初からやり直します。デフォルトでは、これは 2 秒の
LoopResources.DEFAULT_SHUTDOWN_QUIET_PERIODに設定されていますが、システムプロパティReactorNetty.SHUTDOWN_QUIET_PERIODでオーバーライドすることもできます。setShutdownTimeout
shutdownQuietPeriod中にタスクが送信されたかどうかに関係なく、基になるリソースが破棄されるまで待機する最大時間を構成します。デフォルトでは、これは 15 秒の
LoopResources.DEFAULT_SHUTDOWN_TIMEOUTに設定されていますが、システムプロパティReactorNetty.SHUTDOWN_TIMEOUTでオーバーライドすることもできます。setApplicationContext
ApplicationContextの設定はオプションです。設定されている場合、Reactor リソースはlifecycle startフェーズで初期化され、lifecycle stopフェーズで閉じられます。設定されていない場合は、それぞれafterPropertiesSet()とdestroy()で実行されます。- 次で指定:
- インターフェース
ApplicationContextAwareのsetApplicationContext - パラメーター:
applicationContext- このオブジェクトによって使用される ApplicationContext オブジェクト- 関連事項:
afterPropertiesSet
public void afterPropertiesSet()ApplicationContext の外部で初期化された場合、リソースを起動します。これは下位互換性のためです。推奨される方法は、ApplicationContext のlifecycle managementに依存することです。- 次で指定:
- インターフェース
InitializingBeanのafterPropertiesSet - 関連事項:
destroy
public void destroy()ApplicationContext の外部で初期化された場合、リソースを停止します。これは下位互換性のためです。推奨される方法は、ApplicationContext のlifecycle managementに依存することです。- 次で指定:
- インターフェース
DisposableBeanのdestroy - 関連事項:
start
public void start()インターフェースからコピーされた説明:Lifecycleこのコンポーネントを起動します。コンポーネントがすでに実行されている場合は、例外をスローしないでください。
コンテナーの場合、これにより、自動起動しないコンポーネントも含め、適用されるすべてのコンポーネントにハードスタートシグナルが伝播されます。
stop
public void stop()インターフェースからコピーされた説明:Lifecycleこのメソッドを返すとコンポーネントが完全に停止するように、通常は同期的にこのコンポーネントを停止します。非同期停止動作が必要な場合は、SmartLifecycleとそのstop(Runnable)バリアントの実装を検討してください。この停止通知は破棄前に送信されるとは限らないことに注意してください。通常のシャットダウンでは、一般的な破棄コールバックが伝播される前に、
LifecycleBean は最初に停止通知を受信します。ただし、コンテキストの存続期間中のホットリフレッシュまたは中断されたリフレッシュ試行では、特定の Bean の destroy メソッドが、停止シグナルを事前に考慮することなく呼び出されます。コンポーネントが実行されていない(まだ開始されていない)場合は、例外をスローしないでください。
コンテナーの場合、これは停止シグナルを適用するすべてのコンポーネントに伝播します。
isRunning
public boolean isRunning()インターフェースからコピーされた説明:Lifecycleこのコンポーネントが現在実行されているかどうかを確認します。コンテナーの場合、これは、適用されるすべてのコンポーネントが現在実行されている場合にのみ、
trueを返します。getPhase
public int getPhase()インターフェースからコピーされた説明:SmartLifecycleこのライフサイクルオブジェクトが実行されるはずのフェーズを返します。デフォルトの実装は、通常の
Lifecycle実装の前にstop()コールバックを実行できるようにするためにSmartLifecycle.DEFAULT_PHASEを返します。- 次で指定:
- インターフェース
PhasedのgetPhase - 次で指定:
- インターフェース
SmartLifecycleのgetPhase - 関連事項: