クラス PartitionedDispatcher
java.lang.ObjectSE
org.springframework.integration.dispatcher.AbstractDispatcher
org.springframework.integration.dispatcher.PartitionedDispatcher
- 実装されたすべてのインターフェース:
MessageDispatcher
ディスパッチするメッセージに対して提供された関数によって決定されたキーに従って、メッセージを専用スレッドに配布するための
AbstractDispatcher
実装。 このクラスによって作成されるすべてのパーティションは、単一スレッド Executor
SE に基づく UnicastingDispatcher
デリゲートです。
すべてのパーティションはメッセージ処理用の専用スレッドに基づいているため、パーティションの数はアプリケーション環境にとって適切な値である必要があります。
残りのロジックは UnicastingDispatcher
の動作と似ています。
- 導入:
- 6.1
- 作成者:
- Artem Bilan, Christian Tzolov
フィールドのサマリー
クラス org.springframework.integration.dispatcher.AbstractDispatcher から継承されたフィールド
logger
コンストラクターの概要
コンストラクターコンストラクター説明PartitionedDispatcher
(int partitionCount, FunctionSE<Message<?>, ObjectSE> partitionKeyFunction) 指定されたパーティション数に基づいてインスタンスを作成し、ディスパッチするメッセージに対するパーティションキーの関数を作成します。メソッドのサマリー
修飾子と型メソッド説明boolean
メッセージをディスパッチします。void
setErrorHandler
(ErrorHandler errorHandler) void
setFailover
(boolean failover) パーティションディスパッチャーでフェイルオーバーを有効にするかどうかを指定します。void
setFailoverStrategy
(PredicateSE<ExceptionSE> failoverStrategy) スローされた例外に対してチャネルのディスパッチャーでフェイルオーバーを有効にするかどうかの戦略を構成します。void
setLoadBalancingStrategy
(LoadBalancingStrategy loadBalancingStrategy) パーティションディスパッチャーにはLoadBalancingStrategy
を提供します。void
setMessageHandlingTaskDecorator
(MessageHandlingTaskDecorator messageHandlingTaskDecorator) MessageHandlingTaskDecorator
を設定して、メッセージ処理タスクを何らかの追加ロジックにラップします。void
setThreadFactory
(ThreadFactorySE threadFactory) パーティションごとにエグゼキュータのThreadFactory
SE を設定します。void
shutdown()
アプリケーションを閉じるときにこのディスパッチャーをシャットダウンします。クラス org.springframework.integration.dispatcher.AbstractDispatcher から継承されたメソッド
addHandler, getHandlerCount, getHandlers, removeHandler, setMaxSubscribers, toString, tryOptimizedDispatch
コンストラクターの詳細
PartitionedDispatcher
public PartitionedDispatcher(int partitionCount, FunctionSE<Message<?>, ObjectSE> partitionKeyFunction) 指定されたパーティション数に基づいてインスタンスを作成し、ディスパッチするメッセージに対するパーティションキーの関数を作成します。- パラメーター:
partitionCount
- このチャネルのパーティションの数。partitionKeyFunction
- ディスパッチするメッセージに対してパーティションキーを解決する関数。
メソッドの詳細
setThreadFactory
パーティションごとにエグゼキュータのThreadFactory
SE を設定します。デフォルトは、partition-thread-
プレフィックスに基づくCustomizableThreadFactory
です。- パラメーター:
threadFactory
- 使用するThreadFactory
SE。
setFailover
public void setFailover(boolean failover) パーティションディスパッチャーでフェイルオーバーを有効にするかどうかを指定します。デフォルトでは、そうなります。無効にするには、この値を "false" に設定します。- パラメーター:
failover
- フェールオーバーブール値。
setFailoverStrategy
スローされた例外に対してチャネルのディスパッチャーがフェイルオーバーを有効にするかどうかの戦略を構成します。setFailover(boolean)
オプションをオーバーライドします。つまり、このオプションまたはそのオプションを設定する必要があります。- パラメーター:
failoverStrategy
- フェールオーバーブール値。- 導入:
- 6.3
setLoadBalancingStrategy
パーティションディスパッチャーにはLoadBalancingStrategy
を提供します。- パラメーター:
loadBalancingStrategy
- 負荷分散戦略の実装。
setErrorHandler
- パラメーター:
errorHandler
- 使用するErrorHandler
。
setMessageHandlingTaskDecorator
public void setMessageHandlingTaskDecorator(MessageHandlingTaskDecorator messageHandlingTaskDecorator) MessageHandlingTaskDecorator
を設定して、メッセージ処理タスクを何らかの追加ロジックにラップします。メッセージチャネルは、その操作のインターセプトを提供する場合があります。- パラメーター:
messageHandlingTaskDecorator
- 使用するMessageHandlingTaskDecorator
。
shutdown
public void shutdown()アプリケーションを閉じるときにこのディスパッチャーをシャットダウンします。パーティションエグゼキュータがシャットダウンされ、このインスタンスの内部状態がクリアされます。dispatch
インターフェースからコピーされた説明:MessageDispatcher
メッセージをディスパッチします。- パラメーター:
message
- メッセージ。- 戻り値:
- ディスパッチされた場合は true。