クラス PriorityChannel

実装されているすべてのインターフェース:
AwareBeanFactoryAwareBeanNameAwareDisposableBeanInitializingBeanApplicationContextAwareExecutorChannelInterceptorAwareQueueChannelOperationsComponentSourceAwareExpressionCapableIntegrationPatternNamedComponentIntegrationManagementTrackableComponentMessageChannelPollableChannelInterceptableChannel

public class PriorityChannel extends QueueChannel
ComparatorSE に基づいてメッセージに優先順位を付けるメッセージチャネル。デフォルトのコンパレータは、メッセージヘッダーの「優先度」に基づいています。
作成者:
Mark Fisher, Oleg Zhurakousky, Gary Russell, Artem Bilan
  • コンストラクターの詳細

    • PriorityChannel

      public PriorityChannel()
      無制限のキューを持つチャネルを作成します。メッセージの優先度は、StaticMessageHeaderAccessor.getPriority(Message) の値に基づいています。
    • PriorityChannel

      public PriorityChannel(int capacity)
      指定されたキュー容量でチャネルを作成します。メッセージの優先順位は、StaticMessageHeaderAccessor.getPriority(Message) の値に基づきます。
      パラメーター:
      capacity - キュー容量。
    • PriorityChannel

      public PriorityChannel(ComparatorSE<Message<?>> comparator)
      無制限のキューを持つチャネルを作成します。メッセージの優先度は、提供された ComparatorSE によって決定されます。コンパレーターが null の場合、優先順位は StaticMessageHeaderAccessor.getPriority(Message) の値に基づきます。
      パラメーター:
      comparator - コンパレータ。
    • PriorityChannel

      public PriorityChannel(int capacity, @Nullable ComparatorSE<Message<?>> comparator)
      指定されたキュー容量でチャネルを作成します。容量が正の値でない場合、キューは無制限になります。メッセージの優先度は、提供された ComparatorSE によって決定されます。コンパレーターが null の場合、優先順位は StaticMessageHeaderAccessor.getPriority(Message) の値に基づきます。
      パラメーター:
      capacity - 容量。
      comparator - コンパレータ。
    • PriorityChannel

      public PriorityChannel(PriorityCapableChannelMessageStore messageGroupStore, ObjectSE groupId)
      提供された PriorityCapableChannelMessageStore とメッセージストア操作用のグループ ID に基づいてチャネルを作成します。
      パラメーター:
      messageGroupStore - 使用する PriorityCapableChannelMessageStore
      groupId - このチャネルのメッセージをメッセージストアでグループ化します。
      導入:
      5.0
    • PriorityChannel

      public PriorityChannel(MessageGroupQueue messageGroupQueue)
      提供された MessageGroupQueue に基づいてチャネルを作成します。
      パラメーター:
      messageGroupQueue - 使用する MessageGroupQueue
      導入:
      5.0
  • メソッドの詳細

    • getRemainingCapacity

      public int getRemainingCapacity()
      インターフェースからコピーされた説明: QueueChannelOperations
      このチャネルの残りの容量を取得します。
      次で指定:
      インターフェース QueueChannelOperationsgetRemainingCapacity 
      オーバーライド:
      クラス QueueChannelgetRemainingCapacity 
      戻り値:
      このチャネルの残りの容量。
    • doSend

      protected boolean doSend(Message<?> message, long timeout)
      クラスからコピーされた説明: AbstractMessageChannel
      サブクラスはこのメソッドを実装する必要があります。負でないタイムアウトは、チャネルが容量に達した場合に待機する時間を示します(値が 0 の場合、成功の有無にかかわらずすぐに戻る必要があります)。負のタイムアウト値は、メッセージが受け入れられるか、ブロッキングスレッドが中断されるまでメソッドがブロックされることを示します。
      オーバーライド:
      クラス QueueChanneldoSend 
      パラメーター:
      message - メッセージ。
      timeout - タイムアウト。
      戻り値:
      send が成功した場合は true。
    • doReceive

      protected @Nullable Message<?> doReceive(long timeout)
      クラスからコピーされた説明: AbstractPollableChannel
      サブクラスはこのメソッドを実装する必要があります。負でないタイムアウトは、チャネルが空の場合に待機する時間を示します(値が 0 の場合、成功の有無にかかわらずすぐに戻る必要があります)。負のタイムアウト値は、メッセージが使用可能になるか、ブロッキングスレッドが中断されるまでメソッドがブロックされることを示します。
      オーバーライド:
      クラス QueueChanneldoReceive 
      パラメーター:
      timeout - タイムアウト。
      戻り値:
      メッセージ、または null。