クラス IntegrationReactiveUtils

java.lang.ObjectSE
org.springframework.integration.util.IntegrationReactiveUtils

public final class IntegrationReactiveUtils extends ObjectSE
統合コンポーネントをリアクティブ型に / から反応させるためのユーティリティ。
導入:
5.3
作成者:
Artem Bilan
  • フィールドの詳細

    • DELAY_WHEN_EMPTY_KEY

      public static final StringSE DELAY_WHEN_EMPTY_KEY
      Mono.repeatWhenEmpty(java.util.function.Function) からの Flux.delayElements(java.time.Duration) のサブスクライバーコンテキストエントリ。
      関連事項:
    • DEFAULT_DELAY_WHEN_EMPTY

      public static final DurationSE DEFAULT_DELAY_WHEN_EMPTY
      空のソース Mono を 1 秒の DurationSE として繰り返す前のデフォルトの遅延。
    • isContextPropagationPresent

      public static final boolean isContextPropagationPresent
      io.micrometer:context-propagation ライブラリがクラスパス上にあることを示すインジケーター。
      導入:
      6.2.5
  • メソッドの詳細

    • captureReactorContext

      public static reactor.util.context.ContextView captureReactorContext()
      ContextSnapshotFactory ロジックに従って、現在のスレッドローカル状態から Reactor ContextView をキャプチャーします。クラスパスに 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 ロジックに従って、提供された Reactor ContextView からスレッドローカル変数を設定します。
      パラメーター:
      context - 移入元の Reactor ContextView
      戻り値:
      ターゲットクラスパスを汚染しないように、ContextSnapshot.Scope を AutoCloseableSE に変換します。必要に応じてキャストできます。クラスパスに 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 DurationSE エントリに基づいて 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 でサブスクライブされています。-PollableChannelMessageSource ラムダにラップされ、messageSourceToFlux(MessageSource) を再利用します。
      型パラメーター:
      T - 予想されるペイロード型。
      パラメーター:
      messageChannel - 適応する MessageChannel
      戻り値:
      公開するイベントのソースとして提供された MessageChannel を使用する Flux