クラス IntegrationReactiveUtils
java.lang.ObjectSE
org.springframework.integration.util.IntegrationReactiveUtils
統合コンポーネントをリアクティブ型に / から反応させるためのユーティリティ。
- 導入:
- 5.3
- 作成者:
- Artem Bilan
フィールドのサマリー
フィールド修飾子と型フィールド説明static final DurationSE
空のソースMono
を 1 秒のDuration
SE として繰り返す前のデフォルトの遅延。static final StringSE
Mono.repeatWhenEmpty(java.util.function.Function)
からのFlux.delayElements(java.time.Duration)
のサブスクライバーコンテキストエントリ。static final boolean
io.micrometer:context-propagation
ライブラリがクラスパス上にあることを示すインジケーター。メソッドのサマリー
修飾子と型メソッド説明static reactor.util.context.ContextView
ContextSnapshotFactory
ロジックに従って、現在のスレッドローカル状態から ReactorContextView
をキャプチャーします。static <T> reactor.core.publisher.Flux
<Message<T>> messageChannelToFlux
(MessageChannel messageChannel) 提供されたMessageChannel
をFlux
ソースに適合させます。-FluxMessageChannel
はすでにPublisher
であるため、そのまま返されます。-SubscribableChannel
は、このメソッドから返されるSinks.Many.tryEmitNext(Object)
のMessageHandler
でサブスクライブされています。-PollableChannel
はMessageSource
ラムダにラップされ、messageSourceToFlux(MessageSource)
を再利用します。static <T> reactor.core.publisher.Flux
<Message<T>> messageSourceToFlux
(MessageSource<T> messageSource) オンデマンドでプルするために、提供されたMessageSource
をFlux
にラップします。static AutoCloseableSE
setThreadLocalsFromReactorContext
(reactor.util.context.ContextView context) ContextSnapshotFactory
ロジックに従って、提供された ReactorContextView
からスレッドローカル変数を設定します。
フィールドの詳細
DELAY_WHEN_EMPTY_KEY
Mono.repeatWhenEmpty(java.util.function.Function)
からのFlux.delayElements(java.time.Duration)
のサブスクライバーコンテキストエントリ。- 関連事項:
DEFAULT_DELAY_WHEN_EMPTY
空のソースMono
を 1 秒のDuration
SE として繰り返す前のデフォルトの遅延。isContextPropagationPresent
public static final boolean isContextPropagationPresentio.micrometer:context-propagation
ライブラリがクラスパス上にあることを示すインジケーター。- 導入:
- 6.2.5
メソッドの詳細
captureReactorContext
public static reactor.util.context.ContextView captureReactorContext()ContextSnapshotFactory
ロジックに従って、現在のスレッドローカル状態から ReactorContextView
をキャプチャーします。クラスパスにio.micrometer:context-propagation
ライブラリがない場合、Context.empty()
が返されます。- 戻り値:
- 現在のスレッドのローカル状態からの Reactor
ContextView
またはContext.empty()
。 - 導入:
- 6.2.5
setThreadLocalsFromReactorContext
@Nullable public static AutoCloseableSE setThreadLocalsFromReactorContext(reactor.util.context.ContextView context) ContextSnapshotFactory
ロジックに従って、提供された ReactorContextView
からスレッドローカル変数を設定します。- パラメーター:
context
- 移入元の ReactorContextView
。- 戻り値:
- ターゲットクラスパスを汚染しないように、
ContextSnapshot.Scope
をAutoCloseable
SE に変換します。必要に応じてキャストできます。クラスパスにio.micrometer:context-propagation
ライブラリがない場合は null になります。 - 導入:
- 6.2.5
messageSourceToFlux
public static <T> reactor.core.publisher.Flux<Message<T>> messageSourceToFlux(MessageSource<T> messageSource) 提供されたMessageSource
をFlux
にラップして、オンデマンドでプルします。MessageSource.receive()
がnull
を返すと、ソースMono
はMono.repeatWhenEmpty(java.util.function.Function<reactor.core.publisher.Flux<java.lang.Long>, ? extends org.reactivestreams.Publisher<?>>)
状態になり、サブスクライバコンテキストのDELAY_WHEN_EMPTY_KEY
Duration
SE エントリに基づいてdelay
を実行するか、1 秒の期間にフォールバックします。生成されたメッセージにIntegrationMessageHeaderAccessor.ACKNOWLEDGMENT_CALLBACK
ヘッダーがある場合、そのメッセージはMono.doOnSuccess(java.util.function.Consumer<? super T>)
で確認され、Mono.doOnError(java.util.function.Consumer<? super java.lang.Throwable>)
で確認されます。- 型パラメーター:
T
- 予想されるペイロード型。- パラメーター:
messageSource
- 適応するMessageSource
- 戻り値:
- オンデマンドで
MessageSource
からメッセージをプルするFlux
messageChannelToFlux
public static <T> reactor.core.publisher.Flux<Message<T>> messageChannelToFlux(MessageChannel messageChannel) 提供されたMessageChannel
をFlux
ソースに適合させます。-FluxMessageChannel
はすでにPublisher
であるため、そのまま返されます。-SubscribableChannel
は、このメソッドから返されるSinks.Many.tryEmitNext(Object)
のMessageHandler
でサブスクライブされています。-PollableChannel
はMessageSource
ラムダにラップされ、messageSourceToFlux(MessageSource)
を再利用します。- 型パラメーター:
T
- 予想されるペイロード型。- パラメーター:
messageChannel
- 適応するMessageChannel
- 戻り値:
- 公開するイベントのソースとして提供された
MessageChannel
を使用するFlux