次のことを行うSpring-Batchプロセスがあります。
- ステップ:
- XML をステージング テーブルにスクレイピングします (JibX から Hibernate へ)。
- ステージングされたデータの初期状態を検証する
- 専念
- ステップ:
- ステージング テーブルをステージングに変換します (すべて SQL 内)。
- ステージングされたデータの最終状態を検証します。
- 専念。
- ステップ
- ステージングをウェアハウスに変換します (すべて SQL 内)。
- 検証
- 専念
私のデータは 1 つの大きな塊になるので、進行中にデータが追加されてステージ テーブルがいっぱいになることはありません。これにより、手順を変更し、途中でトランザクションを手放すことができます。(また、ステップ1-1をチャンクすることもできます)
JMS バージョンに関する私の一般的なアイデアは、JMS メッセージを受け入れ、それを使用してデータをステージング テーブルに配置し、ジョブをトリガーして、検証のために現在行っていることを実行してから、ウェアハウスに変換することでした。次に、ジョブの成功/失敗を使用して、アイテムの送信者への応答を促進します。
残念ながら、Spring Batch はジョブレベルのトランザクションのアイデアを (直接) サポートしていないため、すべてのタスクレットをトランザクションの ur-tasklet に詰め込むよりも、これを行うためのより適切な方法はありますか?