我工作的公司有许多“复杂”的基于文件的批处理,其中包含一系列文件,例如:
- 取文件 A
- 获取文件 B
- 将文件 A 中的字段连接到文件 B 以生成文件 C
- 对文件 C 运行一些启发式方法以生成文件 D
- 上传文件 D 到服务器 X
- 基于文件 D 和 A 构建报告并将其邮寄到 user.name@example.com
每个步骤都可能需要数小时才能运行(文件可能包含数十亿行数据)。while 东西与 GNU Makefiles 粘合在一起,其中包括以下部分:
fileC: fileD 运行分析 $^ > $@
Makefile 可用于对步骤之间的依赖关系进行建模,以及允许重复某个步骤之后的所有内容(如果某个步骤有问题,或者启发式方法已更改等等)。
使用 Makefile 对我来说总是很糟糕,因为它们用于构建软件,而不是运行批处理。此外,Makefile 不提供任何形式的测试框架。
我的问题是,您如何协调像这样的大型序列大型操作?