問題:サイズが10 MBを超えるファイルを読み取り、SpringBatchを使用してステージングテーブルにロードします。ファイルの読み取り中に状態を維持して、失敗した場合にジョブを再開するにはどうすればよいですか?
ドキュメントによると、FileItemReaderはスレッドセーフではなく、スレッドセーフにしようとすると、再起動性が失われます。したがって、基本的な質問は次のとおりです。
- ファイルをブロック単位で読み取る方法はありますか?各スレッドは、読み取る必要のあるブロックを認識していますか?
- 読み取りを同期化する場合、このシナリオでジョブを再開可能にするには、どのような変更が必要ですか?
誰かが同様の問題に直面したり、それがどのように機能するかを分析したりした場合は、私たちが決定を下すのに役立ちます。
また、ポインタやサンプルコードもありがたいです。