クラス BarrierMessageHandler

実装されたすべてのインターフェース:
org.reactivestreams.Subscriber<Message<?>>AwareBeanClassLoaderAwareBeanFactoryAwareBeanNameAwareDisposableBeanInitializingBeanApplicationContextAwareOrderedComponentSourceAwareExpressionCapableOrderableMessageProducerDiscardingMessageHandlerHeaderPropagationAwareMessageTriggerActionIntegrationPatternNamedComponentIntegrationManagementTrackableComponentMessageHandlerreactor.core.CoreSubscriber<Message<?>>

public class BarrierMessageHandler extends AbstractReplyProducingMessageHandler implements MessageTriggerAction, DiscardingMessageHandler
対応する相関関係を持つメッセージが trigger メソッドに渡されるか、タイムアウトが発生するまでスレッドを一時停止するメッセージハンドラー。特定の相関関係(CorrelationStrategy を呼び出した結果)を持つ 1 つのスレッドのみを一度に中断できます。受信スレッドがトリガースレッドの前に到着しない場合、トリガースレッドは到着するまで中断されるか、タイムアウトが発生します。リクエストメッセージとトリガーメッセージに別々のタイムアウトを構成できます。

デフォルトの CorrelationStrategyHeaderAttributeCorrelationStrategy です。

デフォルトの出力プロセッサーは DefaultAggregatingMessageGroupProcessor です。

導入:
4.2
作成者:
Gary Russell, Artem Bilan, Michel Jung
  • コンストラクターの詳細

    • BarrierMessageHandler

      public BarrierMessageHandler(long timeout)
      提供されたタイムアウトとデフォルトの相関および出力戦略を使用してインスタンスを構築します。
      パラメーター:
      timeout - リクエストメッセージとトリガーメッセージの両方のミリ秒単位のタイムアウト。
    • BarrierMessageHandler

      public BarrierMessageHandler(long timeout, MessageGroupProcessor outputProcessor)
      提供されたタイムアウトと出力プロセッサー、およびデフォルトの相関戦略を使用してインスタンスを構築します。
      パラメーター:
      timeout - リクエストメッセージとトリガーメッセージの両方のミリ秒単位のタイムアウト。
      outputProcessor - 出力 MessageGroupProcessor
    • BarrierMessageHandler

      public BarrierMessageHandler(long timeout, CorrelationStrategy correlationStrategy)
      提供されたタイムアウトと相関戦略、およびデフォルトの出力プロセッサーを使用してインスタンスを構築します。
      パラメーター:
      timeout - リクエストメッセージとトリガーメッセージの両方のミリ秒単位のタイムアウト。
      correlationStrategy - 相関戦略。
    • BarrierMessageHandler

      public BarrierMessageHandler(long timeout, MessageGroupProcessor outputProcessor, CorrelationStrategy correlationStrategy)
      提供されたタイムアウトと出力プロセッサー、およびデフォルトの相関戦略を使用してインスタンスを構築します。
      パラメーター:
      timeout - リクエストメッセージとトリガーメッセージの両方のミリ秒単位のタイムアウト。
      outputProcessor - 出力 MessageGroupProcessor
      correlationStrategy - 相関戦略。
    • BarrierMessageHandler

      public BarrierMessageHandler(long requestTimeout, long triggerTimeout)
      提供されたタイムアウトとデフォルトの相関および出力戦略を使用してインスタンスを構築します。
      パラメーター:
      requestTimeout - トリガーメッセージを待機するときのミリ秒単位のタイムアウト。
      triggerTimeout - リクエストメッセージを待機するときのミリ秒単位のタイムアウト。
      導入:
      5.4
    • BarrierMessageHandler

      public BarrierMessageHandler(long requestTimeout, long triggerTimeout, MessageGroupProcessor outputProcessor)
      提供されたタイムアウトと出力プロセッサー、およびデフォルトの相関戦略を使用してインスタンスを構築します。
      パラメーター:
      requestTimeout - トリガーメッセージを待機するときのミリ秒単位のタイムアウト。
      triggerTimeout - リクエストメッセージを待機するときのミリ秒単位のタイムアウト。
      outputProcessor - 出力 MessageGroupProcessor
      導入:
      5.4
    • BarrierMessageHandler

      public BarrierMessageHandler(long requestTimeout, long triggerTimeout, CorrelationStrategy correlationStrategy)
      提供されたタイムアウトと相関戦略、およびデフォルトの出力プロセッサーを使用してインスタンスを構築します。
      パラメーター:
      requestTimeout - トリガーメッセージを待機するときのミリ秒単位のタイムアウト。
      triggerTimeout - リクエストメッセージを待機するときのミリ秒単位のタイムアウト。
      correlationStrategy - 相関戦略。
      導入:
      5.4
    • BarrierMessageHandler

      public BarrierMessageHandler(long requestTimeout, long triggerTimeout, MessageGroupProcessor outputProcessor, CorrelationStrategy correlationStrategy)
      提供されたタイムアウトと出力プロセッサー、およびデフォルトの相関戦略を使用してインスタンスを構築します。
      パラメーター:
      requestTimeout - トリガーメッセージを待機するときのミリ秒単位のタイムアウト。
      triggerTimeout - リクエストメッセージを待機するときのミリ秒単位のタイムアウト。
      outputProcessor - 出力 MessageGroupProcessor
      correlationStrategy - 相関戦略。
      導入:
      5.4
  • メソッドの詳細

    • setDiscardChannelName

      public void setDiscardChannelName(StringSE discardChannelName)
      遅れて到着したトリガーメッセージが送信されるチャネル、またはリクエストメッセージが時間内に到着しないチャネルの名前を設定します。
      パラメーター:
      discardChannelName - 廃棄チャネル。
      導入:
      5.0
    • setDiscardChannel

      public void setDiscardChannel(MessageChannel discardChannel)
      遅れて到着したトリガーメッセージが送信されるチャネル、またはリクエストメッセージが時間内に到着しないチャネルを設定します。
      パラメーター:
      discardChannel - 廃棄チャネル。
      導入:
      5.0
    • getDiscardChannel

      @Nullable public MessageChannel getDiscardChannel()
      トリガーアクションメッセージの破棄メッセージチャネルを返します。
      次で指定:
      インターフェース DiscardingMessageHandlergetDiscardChannel 
      戻り値:
      破棄メッセージチャネル。
      導入:
      5.0
    • getComponentType

      public StringSE getComponentType()
      クラスからコピーされた説明: IntegrationObjectSupport
      サブクラスはこのメソッドを実装して、コンポーネント型情報を提供できます。
      次で指定:
      インターフェース NamedComponentgetComponentType 
      オーバーライド:
      クラス MessageHandlerSupportgetComponentType 
    • getIntegrationPatternType

      public IntegrationPatternType getIntegrationPatternType()
      インターフェースからコピーされた説明: IntegrationPattern
      このコンポーネントが実装するパターン型を返します。
      次で指定:
      インターフェース IntegrationPatterngetIntegrationPatternType 
      オーバーライド:
      クラス AbstractReplyProducingMessageHandlergetIntegrationPatternType 
      戻り値:
      このコンポーネントが実装する IntegrationPatternType
    • handleRequestMessage

      protected ObjectSE handleRequestMessage(Message<?> requestMessage)
      クラスからコピーされた説明: AbstractReplyProducingMessageHandler
      サブクラスはこのメソッドを実装して、リクエストメッセージを処理する必要があります。戻り値は、メッセージ、MessageBuilder、任意のプレーンオブジェクトです。基本クラスは、これらの開始点のいずれかからの返信メッセージの最終的な作成を処理します。戻り値が null の場合、メッセージフローはここで終了します。
      次で指定:
      クラス AbstractReplyProducingMessageHandlerhandleRequestMessage 
      パラメーター:
      requestMessage - リクエストメッセージ。
      戻り値:
      メッセージを処理した結果、または null
    • buildResult

      protected ObjectSE buildResult(ObjectSE key, Message<?> requestMessage, Message<?> releaseMessage)
      オーバーライドして、結果として受信メッセージとリリースメッセージが返されるデフォルトのメカニズムを変更します。
      パラメーター:
      key - 相関キー。
      requestMessage - 受信メッセージ。
      releaseMessage - リリースメッセージ。
      戻り値:
      結果。
    • trigger

      public void trigger(Message<?> message)
      インターフェースからコピーされた説明: MessageTriggerAction
      メッセージに基づいて何らかのアクションを実行します。
      次で指定:
      インターフェース MessageTriggerActiontrigger 
      パラメーター:
      message - メッセージ。