我正在维护一个数据仓库系统,该系统涉及许多相关工作(数据导入、转换等)。我一直在使用 Linuxcrontab来管理它们,直到作业之间的依赖关系变得复杂。
基本上我正在寻找一些cron替代品来帮助我解决以下情况:
在00:05(easy)处运行作业 A。通常这是导入作业。
安排作业 B、C、D 在作业 A 完成后运行。作业 D 仅在作业 A 完成后 30 分钟运行(以分配负载)。这些是转换作业。
作业 E 在所有 B、C、D 完成后运行。通常这是将聚合数据带到 Web 前端数据库的工作。
所有这些都发生在同一个节点上。
我想它看起来像一个拓扑图。
A--> B -------------->---> E
\-> C -------------/ /
\-> (delay 30mins) -> D
Run Code Online (Sandbox Code Playgroud)
有没有这么简单的基于 linux 的工具支持这个?我已经研究过Airbnb 的 Chronos,但对于我的需求来说似乎有点过分了。
编辑:上述场景只是正在发生的事情的简化版本。我们有更多的日常工作,而且依赖性要复杂得多。所以我实际上是在寻找一些“类固醇上的 cron”而不是逐案的 bash 脚本来满足每种情况。