パーティショナーを使用したSpring Batch
1概要
前回のリンクでは、/Introduction-to-spring-batch[Spring Batchの紹介]で、フレームワークをバッチ処理ツールとして紹介しました。
また、シングルスレッド、シングルプロセスのジョブ実行の構成の詳細と実装についても調査しました。
いくつかの並列処理でジョブを実装するために、さまざまなオプションが提供されています。より高いレベルでは、並列処理には2つのモードがあります。
-
シングルプロセス、マルチスレッド
-
マルチプロセス
このクイック記事では、シングルプロセスジョブとマルチプロセスジョブの両方に実装できる
Step
の分割について説明します。
2ステップを分割する
分割によるSpring Batchはhttp://docs.spring.io/spring-batch/trunk/reference/html/scalability.html[
Step
]の実行を分割する機能を提供します。
上の図は、パーティション化された
Step
を持つ
Job
の実装を示しています。
「マスター」と呼ばれる
ステップ
があり、その実行はいくつかの「スレーブ」ステップに分割されています。これらの奴隷は主人の代わりをすることができ、そして結果は変わらないでしょう。マスターとスレーブは両方とも
Step
のインスタンスです。スレーブはリモートサービスでも、単にローカルで実行されているスレッドでもかまいません。
必要に応じて、マスターからスレーブにデータを渡すことができます。メタデータ(つまり
JobRepository
)は、すべてのスレーブが__Jobの1回の実行で1回だけ実行されるようにします。
これがすべてどのように機能するかを示すシーケンス図です。
示されているように、
PartitionStep
が実行を推進しています。
PartitionHandler
は、「マスター」の作業を「スレーブ」に分割する責任があります。一番右の
Step
がスレーブです。