クラス QueueChannel

実装されているすべてのインターフェース:
AwareBeanFactoryAwareBeanNameAwareDisposableBeanInitializingBeanApplicationContextAwareExecutorChannelInterceptorAwareQueueChannelOperationsComponentSourceAwareExpressionCapableIntegrationPatternNamedComponentIntegrationManagementTrackableComponentMessageChannelPollableChannelInterceptableChannel
既知の直属サブクラス
PriorityChannelRendezvousChannel

public class QueueChannel extends AbstractPollableChannel implements QueueChannelOperations
メッセージチャネルの簡単な実装。各 MessageBlockingQueueSE に配置され、その容量は構築時に指定できます。容量は正の整数値でなければなりません。SynchronousQueueSE に基づく容量ゼロのバージョンの場合は、RendezvousChannel を検討してください。
作成者:
Mark Fisher, Oleg Zhurakousky, Gary Russell, Artem Bilan
  • フィールドの詳細

    • queueSemaphore

      protected final SemaphoreSE queueSemaphore
  • コンストラクターの詳細

    • QueueChannel

      public QueueChannel(QueueSE<Message<?>> queue)
      指定されたキューでチャネルを作成します。
      パラメーター:
      queue - 待ち行列。
    • QueueChannel

      public QueueChannel(int capacity)
      指定されたキュー容量でチャネルを作成します。
      パラメーター:
      capacity - 容量。
    • QueueChannel

      public QueueChannel()
      「無制限」のキュー容量を持つチャネルを作成します。実際の容量値は Integer.MAX_VALUESE です。制限のないキューは OutOfMemoryErrors につながる可能性があるため、制限のあるキューをお勧めします。
  • メソッドの詳細

    • registerMetricsCaptor

      public void registerMetricsCaptor(MetricsCaptor metricsCaptor)
      インターフェースからコピーされた説明: IntegrationManagement
      MetricsCaptor を注入します。ObservationRegistry が指定されている場合は無視されます。
      次で指定:
      インターフェース IntegrationManagementregisterMetricsCaptor 
      オーバーライド:
      クラス AbstractMessageChannelregisterMetricsCaptor 
      パラメーター:
      metricsCaptor - キャプター。
      関連事項:
    • doSend

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

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

      public ListSE<Message<?>> clear()
      インターフェースからコピーされた説明: QueueChannelOperations
      このチャネルからすべての Messages を削除します。
      次で指定:
      インターフェース QueueChannelOperationsclear 
      戻り値:
      削除されたメッセージ。
    • purge

      public ListSE<Message<?>> purge(@Nullable MessageSelector selector)
      インターフェースからコピーされた説明: QueueChannelOperations
      提供されたセレクターで受け入れられない Messages をすべて削除します。
      次で指定:
      インターフェース QueueChannelOperationspurge 
      パラメーター:
      selector - メッセージセレクター。
      戻り値:
      パージされたメッセージのリスト。
    • getQueueSize

      public int getQueueSize()
      インターフェースからコピーされた説明: QueueChannelOperations
      このチャネルでキューに入れられた Messages の現在の数を取得します。
      次で指定:
      インターフェース QueueChannelOperationsgetQueueSize 
      戻り値:
      このチャネルでキューに入れられた Messages の現在の数。
    • getRemainingCapacity

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

      public void destroy()
      次で指定:
      インターフェース DisposableBeandestroy 
      次で指定:
      インターフェース IntegrationManagementdestroy 
      オーバーライド:
      クラス AbstractMessageChanneldestroy