2017-10-15 16 views
0

私はSpring Batchを使用していて、バッチ処理のジョブを定義していますが、特定のディレクトリから80.000個のjpegファイルの名前を入力する必要があります。チャンクごとに例えば1000を読みたいとします。 私はSpring Integrationについてこれについても聞いたことがありますが、これが正しいかどうかわかりません。 私は正しいアプローチを取っているかどうかを教えてください。Spring Batchの入力として何千ものjpegファイルの名前を読む

ありがとうございました。

UPDATE:私は私のカスタムアイテムのリーダーを初期化したいとき

iは、リストまたは何か他のもののようなコレクションの構造にすべてのファイルを取得する必要がありますか?それは最適ですか? 各ファイルの名前に基づいてデータベースからアイテムを一度に読みたい。 JpaPagingItemReaderでこれをどうすればいいですか?

答えて

0

これは本当にあなたがJPEGで何をしたいかによって決まります。チャンクごとに1000でチャンクすることに興味を持っているため、あなたが何らかの形式のオーケストレーション機能(ファイルが表示されたときにジョブを実行する)に必要な場合を除き、Spring Integrationを関与させる理由はありません。

ItemReaderを使用し、ステップを1000でチャンクに構成します。Spring Batch内のすぐに使用可能なコンポーネントを使用して並列処理できる場合は、それらをパーティション化することもできます。

+0

私はすべてのjpegファイルの名前を入力として読み込み、その名前に基づいてデータベース内のレコードを探したいと思います。 –

+0

私の答えはそれに基づいて変更されていません... –

+0

そして、私はまた、jpegファイルの読み取りを追跡し、途中でジョブが壊れているかどうかを知ることができます。 –

0

はい、Spring Integration FileReadingMessageSourceは本当にこのタスクに使用できます。読み取られたファイルは、放出メッセージの​​です。 maxMessagesPerPoll = 1000を使用して、1つのポーリングタスクにつき最大値を得ることができます。

実際にメッセージを1つのメッセージに結合する必要がある場合は、aggregatorが必要です。

申し訳ありませんが、私は春のバッチので、その視点から何かアドバイスあなたに良い知らない。

+0

'spring-batch-integration'は、統合フローから起動できるジョブ起動メッセージハンドラとゲートウェイを提供します。 –

関連する問題