クラス BroadcastingDispatcher

java.lang.ObjectSE
org.springframework.integration.dispatcher.AbstractDispatcher
org.springframework.integration.dispatcher.BroadcastingDispatcher
実装されているすべてのインターフェース:
AwareBeanFactoryAwareMessageDispatcher

public class BroadcastingDispatcher extends AbstractDispatcher implements BeanFactoryAware
ブロードキャストディスパッチャーの実装。'ignoreFailures' プロパティが false (デフォルト) に設定されている場合、MessageHandler によってスローされた例外によって後続のハンドラーがメッセージを受信できなくなる可能性があるため、すぐに失敗します。ただし、Executor が提供されている場合、メッセージは別のスレッドでディスパッチされ、'ignoreFailures' フラグが false の場合でも他のハンドラーが呼び出される可能性があります。

一方、"ignoreFailures" フラグが true に設定されている場合、各ハンドラーにメッセージを送信するために最善を尽くします。つまり、"ignoreFailures" が true の場合、いずれかのハンドラーに送信できなかった場合は、警告レベルのメッセージをログに記録するだけで、他のハンドラーにはメッセージを送信し続けます。

"requireSubscribers" フラグが true に設定されている場合、送信されたメッセージはディスパッチされていないと見なされ、"Dispatcher has no subscribers" MessageDispatchingException で呼び出し元に拒否されます。

作成者:
Mark Fisher, Iwein Fuld, Gary Russell, Oleg Zhurakousky, Artem Bilan
  • コンストラクターの詳細

    • BroadcastingDispatcher

      public BroadcastingDispatcher()
    • BroadcastingDispatcher

      public BroadcastingDispatcher(ExecutorSE executor)
    • BroadcastingDispatcher

      public BroadcastingDispatcher(boolean requireSubscribers)
    • BroadcastingDispatcher

      public BroadcastingDispatcher(ExecutorSE executor, boolean requireSubscribers)
  • メソッドの詳細

    • setIgnoreFailures

      public void setIgnoreFailures(boolean ignoreFailures)
      1 つ以上のハンドラーの障害を無視するかどうかを指定します。デフォルトでは、これは false です。これは、ハンドラーが失敗したときに例外がスローされることを意味します。これをオーバーライドして例外を抑制するには、値を true に設定します。

      エグゼキュータを使用する場合、失敗を無視しなくても、例外をスローした後に他のハンドラーが呼び出される可能性があることに注意してください。エグゼキュータは別のスレッドを使用している可能性が高いため、このフラグは、そのようなエグゼキュータが設定されている場合に、エラーメッセージがエラーチャネルに送信されるかどうかにのみ影響します。

      パラメーター:
      ignoreFailures - 失敗を無視する場合は true。
    • setApplySequence

      public void setApplySequence(boolean applySequence)
      ハンドラーに送信する前に、メッセージにシーケンス番号を適用するかどうかを指定します。デフォルトでは、シーケンス番号は適用されません。
      パラメーター:
      applySequence - シーケンス情報を適用する必要がある場合は true。
    • setMinSubscribers

      public void setMinSubscribers(int minSubscribers)
      少なくともこの数のサブスクライバーがメッセージを受信すると、dispatch(Message) は true を返します。デフォルト: 0。
      パラメーター:
      minSubscribers - サブスクライバーの最小数。
    • setMessageHandlingTaskDecorator

      public void setMessageHandlingTaskDecorator(MessageHandlingTaskDecorator messageHandlingTaskDecorator)
    • setBeanFactory

      public void setBeanFactory(BeanFactory beanFactory) throws BeansException
      次で指定:
      インターフェース BeanFactoryAwaresetBeanFactory 
      例外:
      BeansException
    • getMessageBuilderFactory

      protected MessageBuilderFactory getMessageBuilderFactory()
    • dispatch

      public boolean dispatch(Message<?> message)
      インターフェースからコピーされた説明: MessageDispatcher
      メッセージをディスパッチします。
      次で指定:
      インターフェース MessageDispatcherdispatch 
      パラメーター:
      message - メッセージ。
      戻り値:
      ディスパッチされた場合は true。