ITコンサルの日常

ITコンサル会社に勤務する普通のITエンジニアの日常です。

バッチデザインパターンとかあればいいのに。

お前が作れよって話と、作るほどのもんでもないって話と二つあるような気がしますが。
バッチフレームワークってのはあるのにね。と。


Javaで作られたバッチなのですが、
相互に関係のない処理Aと処理Bが混在してます。

  • 全体
    • 処理A
      • 対象データを抽出
      • 対象データ全てに対して、テーブルAにデータを作成
      • コミット
      • 対象データ1件ずつに対して以下の処理を実施
        • ファイル作成
        • ファイル転送
        • テーブルBにデータを作成
        • コミット
    • 処理B
      • 対象データを抽出
      • 対象データ1件ずつに対して以下の処理を実施
        • ファイル作成
        • ファイル転送
        • テーブルCのデータを更新
        • コミット

なんでこんなことになってるんだろうと首をかしげるばかり。
たとえば、処理Aで最初のコミットが終わった後のファイル作成でエラーになった場合に、
どうやってリカバリすんだとか、
処理Aは正常に終わったけど、処理Bの対象データ抽出でエラーになった場合に、
どうやってリカバリすんだとか、色々。
要はリカバリを考えているかどうかがポイントなわけですが、どうすればそれが分かってもらえるのかは不明です。。