クラス ExecutorChannel

実装されたすべてのインターフェース:
AwareBeanFactoryAwareBeanNameAwareDisposableBeanInitializingBeanApplicationContextAwareExecutorChannelInterceptorAwareComponentSourceAwareExpressionCapableIntegrationPatternNamedComponentIntegrationManagementSubscribableChannelManagementTrackableComponentMessageChannelSubscribableChannelInterceptableChannel

public class ExecutorChannel extends AbstractExecutorChannel
UnicastingDispatcher のインスタンスに委譲する MessageChannel の実装。次に、すべてのディスパッチ呼び出しを ExecutorSE に委譲します。

:DirectChannel とは異なり、ExecutorChannel は、ディスパッチに別のスレッドを使用するため、ExecutorSE は通常、送信者のスレッドをブロックしないため、送信者とハンドラー間の共有トランザクションコンテキストをサポートしません。(SyncTaskExecutor は例外ですが、このチャネルには値を提供しません。同期ディスパッチが必要な場合は、代わりに DirectChannel を使用する必要があります)。

導入:
1.0.3
作成者:
Mark Fisher, Gary Russell, Artem Bilan
  • コンストラクターの詳細

    • ExecutorChannel

      public ExecutorChannel(ExecutorSE executor)
      メッセージをディスパッチするときに、提供された ExecutorSE に委譲する ExecutorChannel を作成します。

      エグゼキューターを null にすることはできません。

      パラメーター:
      executor - エグゼキューター。
    • ExecutorChannel

      public ExecutorChannel(ExecutorSE executor, @Nullable LoadBalancingStrategy loadBalancingStrategy)
      メッセージをディスパッチするときに提供された ExecutorSE に委譲する LoadBalancingStrategy を使用して ExecutorChannel を作成します。

      エグゼキューターを null にすることはできません。

      パラメーター:
      executor - エグゼキューター。
      loadBalancingStrategy - 負荷分散戦略の実装。
  • メソッドの詳細

    • setFailover

      public void setFailover(boolean failover)
      チャネルのディスパッチャーでフェイルオーバーを有効にするかどうかを指定します。デフォルトではそうなります。無効にするには、この値を "false" に設定します。
      パラメーター:
      failover - フェールオーバーブール値。
    • setFailoverStrategy

      public void setFailoverStrategy(PredicateSE<ExceptionSE> failoverStrategy)
      スローされた例外に対してチャネルのディスパッチャーがフェイルオーバーを有効にするかどうかの戦略を構成します。setFailover(boolean) オプションをオーバーライドします。つまり、このオプションまたはそのオプションを設定する必要があります。
      パラメーター:
      failoverStrategy - フェールオーバーブール値。
      導入:
      6.3
    • getDispatcher

      protected UnicastingDispatcher getDispatcher()
      次で指定:
      クラス AbstractSubscribableChannelgetDispatcher 
    • onInit

      public final void onInit()
      クラスからコピーされた説明: IntegrationObjectSupport
      サブクラスは、初期化ロジック用にこれを実装できます。
      オーバーライド:
      クラス AbstractMessageChannelonInit