1

このシナリオの解決策 - コミット間隔は 10、スキップ制限は 10、合計入力レコードは 20、最初の 9 レコードは有効、残りは無効です。

既に 9 件のレコードが読み込まれている場合、10 件目は無効です。チャンク サイズは 10 でスキップ リミットは 10 であるため、Spring バッチはこれらの 9 つのレコードを出力ファイルに書き込みますか? そうでない場合、残りのレコードの読み取りを続行すると、20 番目のレコードを読み取るときに、エラー レコードのカウントは 11 になり、定義されたスキップ リミットは 10 になります。したがって、プロセスはすぐに停止します。最初に読み取られた有効なレコードの運命についてはどうですか。

最初の 9 レコードが出力ファイルに書き込まれるかどうか。

解決策があれば教えてください。ありがとう!

4

2 に答える 2

1

このシナリオでは、コミット間隔は 10、スキップ制限は 10、合計入力レコードは 20、最初の 9 レコードは有効、残りは無効です。

既に 9 件のレコードが読み込まれている場合、10 件目は無効です。チャンク サイズは 10 で、スキップ リミットは 10 であるため、Spring バッチはこれら 9 つのレコードを出力ファイルに書き込みます。

Answer - SB は 10 番目の無効なレコードをスキップして 11 番目のレコードを読み取り、次にライターに正しい 10 番目のレコードを書き込むように指示します。無効なレコードは 1 つだけなので、スキップ カウントは 1 になります。

サンプル構成 -

于 2015-11-25T17:07:25.647 に答える