クラス BroadcastingDispatcher
java.lang.ObjectSE
org.springframework.integration.dispatcher.AbstractDispatcher
org.springframework.integration.dispatcher.BroadcastingDispatcher
- 実装されているすべてのインターフェース:
Aware
、BeanFactoryAware
、MessageDispatcher
ブロードキャストディスパッチャーの実装。'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
フィールドのサマリー
クラス org.springframework.integration.dispatcher.AbstractDispatcher から継承されたフィールド
logger
コンストラクターの概要
コンストラクターコンストラクター説明BroadcastingDispatcher
(boolean requireSubscribers) BroadcastingDispatcher
(ExecutorSE executor) BroadcastingDispatcher
(ExecutorSE executor, boolean requireSubscribers) メソッドのサマリー
修飾子と型メソッド説明boolean
メッセージをディスパッチします。protected MessageBuilderFactory
void
setApplySequence
(boolean applySequence) ハンドラーに送信する前に、メッセージにシーケンス番号を適用するかどうかを指定します。void
setBeanFactory
(BeanFactory beanFactory) void
setIgnoreFailures
(boolean ignoreFailures) 1 つ以上のハンドラーの失敗を無視するかどうかを指定します。void
setMessageHandlingTaskDecorator
(MessageHandlingTaskDecorator messageHandlingTaskDecorator) void
setMinSubscribers
(int minSubscribers) 少なくともこの数のサブスクライバーがメッセージを受信すると、dispatch(Message)
は true を返します。クラス org.springframework.integration.dispatcher.AbstractDispatcher から継承されたメソッド
addHandler, getHandlerCount, getHandlers, removeHandler, setMaxSubscribers, toString, tryOptimizedDispatch
コンストラクターの詳細
BroadcastingDispatcher
public BroadcastingDispatcher()BroadcastingDispatcher
BroadcastingDispatcher
public BroadcastingDispatcher(boolean requireSubscribers) BroadcastingDispatcher
メソッドの詳細
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
- 次で指定:
- インターフェース
BeanFactoryAware
のsetBeanFactory
- 例外:
BeansException
getMessageBuilderFactory
dispatch
インターフェースからコピーされた説明:MessageDispatcher
メッセージをディスパッチします。- 次で指定:
- インターフェース
MessageDispatcher
のdispatch
- パラメーター:
message
- メッセージ。- 戻り値:
- ディスパッチされた場合は true。