2017-01-06 4 views
0

私はアプリケーションで従業員をインポートするためのスプリングバッチ統合を持っています。従業員は別の従業員に報告することができます。従業員へのレポートが存在しない場合は、SkipListenerによって捕捉された検証エラーがスローされます。まだ処理されていない他のレコードに依存するレコードを、その親が処理されるまで保留にします。

しかし、インポートファイルが非常に大きく、レコードの順序を選択できないため、従業員はインポートされていない親を参照することができます。

再処理のための前述の検証に失敗したレコードを一時的に保持できますか(再度インポートしようとしますか?)

レポートの検証に失敗したレコードだけのプロセスを、親がインポートされるまで再実行できるようにする必要があります。

答えて

1

春のバッチで再試行のサポートがありますが、私はあなたの探しているように遅延再試行があるとは思わない。最初のステップとしてステージング・テーブルにデータをロードできます。次に、ステージングから読み込み、存在しない従業員を参照するステージングされた従業員を見つけてステージングでそのようにマークする別の検証ステップを実行します。 3番目のステップは、有効なすべての従業員をロードすることができます。

関連する問題