クラス MessageChannelPartitionHandler
java.lang.ObjectSE
org.springframework.batch.core.partition.support.AbstractPartitionHandler
org.springframework.batch.integration.partition.MessageChannelPartitionHandler
- 実装されているすべてのインターフェース:
PartitionHandler,org.springframework.beans.factory.InitializingBean
@MessageEndpoint
public class MessageChannelPartitionHandler
extends AbstractPartitionHandler
implements org.springframework.beans.factory.InitializingBean
MessageChannel インスタンスを使用して リモートワーカーに命令を送信し、そのレスポンスを受信する PartitionHandler。MessageChannel は、ワーカーの場所とそれらとの通信に使用されるトランスポートを実行時に変更できるように、優れた抽象化を提供します。リモートワーカーとの通信はトランザクションである必要も、配信が保証されている必要もないため、ローカルスレッドプールベースの実装は、リモート Web サービスや JMS 実装と同様に機能します。リモートワーカーが失敗した場合、ジョブは失敗しますが、欠落しているメッセージと処理を取得するために再起動できます。リモートワーカーは、これらの再起動間の共有状態を一元管理できるように、Spring Batch JobRepository にアクセスする必要があります。MessageChannel は ワーカーにリクエストを送信するために使用されますが、ワーカーのレスポンスは次の 2 つの方法のいずれかで取得できます。
- 返信チャンネル - ワーカーは、このコンポーネントを介して集約されるメッセージで応答します。
- ジョブリポジトリのポーリング - 各ワーカーの状態は、ジョブリポジトリ内で個別に維持されるため、ワーカーが正式に応答する必要なしに、ストアをポーリングして状態を判別できます。
- 作成者:
- Dave Syer, Will Schipp, Michael Minella, Mahmoud Ben Hassine, Yanming Zhou
フィールドのサマリー
クラス org.springframework.batch.core.partition.support.AbstractPartitionHandler から継承されたフィールド
gridSizeコンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明voidListSE<?>protected SetSE<StepExecution>doHandle(StepExecution managerStepExecution, SetSE<StepExecution> partitionStepExecutions) StepExecutionRequestオブジェクトをMessagingTemplateのリクエストチャネルに送信し、その結果を応答チャネルでStepExecutionのリストとして受信します。voidsetDataSource(DataSourceSE dataSource) ジョブリポジトリを指すDataSourceSEvoidsetJobExplorer(JobExplorer jobExplorer) ジョブリポジトリの照会に使用するJobExplorer。voidsetMessagingOperations(org.springframework.integration.core.MessagingTemplate messagingGateway) リモートワーカーとメッセージを送受信するための事前設定されたゲートウェイ。voidsetPollInterval(long pollInterval) ワーカーのステータスについてジョブリポジトリをポーリングする頻度。voidsetReplyChannel(org.springframework.messaging.PollableChannel replyChannel) voidsetStepName(StringSE stepName) パーティション化されたStepExecutionを実行するために使用されるStepの名前。voidsetTimeout(long timeout) ジョブリポジトリのポーリングを使用する場合、待機する時間制限。クラス org.springframework.batch.core.partition.support.AbstractPartitionHandler から継承されたメソッド
getGridSize, handle, setGridSize
コンストラクターの詳細
MessageChannelPartitionHandler
public MessageChannelPartitionHandler()
メソッドの詳細
afterPropertiesSet
- 次で指定:
- インターフェース
org.springframework.beans.factory.InitializingBeanのafterPropertiesSet - 例外:
ExceptionSE
setTimeout
public void setTimeout(long timeout) ジョブリポジトリのポーリングを使用する場合、待機する時間制限。- パラメーター:
timeout- 待機するミリ秒。デフォルトは -1(タイムアウトなし)です。
setJobExplorer
ジョブリポジトリのクエリに使用するJobExplorer。ジョブリポジトリポーリングを使用する場合は、これまたはDataSourceSE のいずれかが必要です。- パラメーター:
jobExplorer- ルックアップに使用するJobExplorer
setPollInterval
public void setPollInterval(long pollInterval) ワーカーのステータスについてジョブリポジトリをポーリングする頻度。- パラメーター:
pollInterval- ポーリング間のミリ秒、デフォルトは 10000 (10 秒)。
setDataSource
ジョブリポジトリを指すDataSourceSE- パラメーター:
dataSource- ジョブリポジトリのストアを指すDataSourceSE
setMessagingOperations
public void setMessagingOperations(org.springframework.integration.core.MessagingTemplate messagingGateway) リモートワーカーとメッセージを送受信するための事前設定されたゲートウェイ。このプロパティを使用すると、送信のタイムアウトやその他のプロパティを大幅に制御できます。内部でチャネルを設定する必要があります。StepExecutionRequestペイロードを受け入れることができるリクエストチャネルStepExecution結果のリストを返す返信チャネル
- パラメーター:
messagingGateway- 設定するMessagingTemplate
setStepName
パーティション化されたStepExecutionを実行するために使用されるStepの名前。これは通常の Spring Batch ステップであり、StepExecutionコンテキストの入力パラメーターに基づいて実行を完了するために必要なすべてのビジネスロジックが含まれています。名前は、リモートワーカーによってStepインスタンスに変換されます。- パラメーター:
stepName- ビジネスロジックを実行するStepインスタンスの名前
aggregate
@Aggregator(sendPartialResultsOnExpiry="true") public ListSE<?> aggregate(@Payloads ListSE<?> messages) - パラメーター:
messages- 集約されるメッセージ- 戻り値:
- 渡されたリスト
setReplyChannel
public void setReplyChannel(org.springframework.messaging.PollableChannel replyChannel) doHandle
protected SetSE<StepExecution> doHandle(StepExecution managerStepExecution, SetSE<StepExecution> partitionStepExecutions) throws ExceptionSE StepExecutionRequestオブジェクトをMessagingTemplateのリクエストチャネルに送信し、その結果を応答チャネルでStepExecutionのリストとして受信します。個々のリモート応答のアグリゲーターとしてaggregate(List)メソッドを使用します。すべての作業が行われる可能性が高くなるように、受信タイムアウトはMessagingTemplateと アグリゲーターで現実的に設定する必要があります。- 次で指定:
- クラス
AbstractPartitionHandlerのdoHandle - パラメーター:
managerStepExecution- パーティション全体の実行partitionStepExecutions- 実行するStepExecutionインスタンス- 戻り値:
- これらの完成した
StepExecutionインスタンスの更新されたビュー - 例外:
ExceptionSE- 何かがうまくいかない場合。これにより、実装は自由になり、必要に応じて呼び出し元が例外をステップ障害に変換することに依存することができます。- 関連事項: