私が働いている会社には、「複雑な」ファイルベースのバッチプロセスがたくさんあり、次のような一連のファイルがあります。
- ファイルAを取る
- ファイル B をフェッチする
- ファイル A のフィールドをファイル B に結合してファイル C を作成する
- ファイル C でいくつかのヒューリスティックを実行して、ファイル D を作成します
- ファイル D をサーバー X にアップロードする
- ファイル D と A に基づいてレポートを作成し、それを user.name@example.com にメールで送信します
各ステップの実行には何時間もかかる場合があります (ファイルには数十億行のデータが含まれる場合があります)。while は、GNU Makefile と一緒に接着されており、次のようなセクションがあります。
fileC: fileD run-analysis $^ > $@
Makefile は、ステップ間の依存関係をモデル化するのに役立ちます。また、特定のステップの後のすべてを繰り返すこともできます (ステップに問題がある場合、またはヒューリスティックが変更された場合など)。
Makefile を使用することは、バッチ プロセスを実行するためではなく、ソフトウェアを構築するためのものであるため、私には常に悪いように思えます。また、Makefile は、いかなる形式のテスト フレームワークも提供しません。
私の質問は、これらのような大きなシーケンスの大規模な操作をどのように調整するのですか?