应用场景
有一个原始数据库 A,里面包含所有需要的数据。
- 脚本 1. 从 A 中捞出每天新增的数据,去重后塞入数据库 B
- 脚本 2:从 A 中捞出每天新增数据,计算与昨日相比的增量并发邮件
- 脚本 3:从 B 中捞出每天的新增数据,计算与昨日相比的增量并发邮件
- 脚本 4: 从 B 中捞出所有 tag 为'video'的数据,把它们的 ID 和所有 tag 为'news'的数据进行对比,找出'title'相同的记录
- 脚本 5:从 B 中捞出数据,查询 Solr,把查询到的数据中的某些字段与 B 中的数据合并,然后写入数据库 C
- 脚本 6,7,8,9,10,……
例子中主要是数据分析的脚本,在实际中不仅限于此,还有不少 log 分析的脚本,警报脚本等等。
这样的需要定时运行的小脚本有 40 多个。现在全靠 crontab 和 jenkins 运行,已经感觉难以管理了。
对于这些要长不长,要短不短的小脚本,大家有什么比较好的管理方案吗?
需求
-
支持定时启动
-
满足某些条件(某个脚本运行完,某个脚本的输出结果满足什么条件等等)启动
-
热拔插,添加 /修改新脚本不影响老脚本
-
新脚本可以轻松获取某个或者某些老脚本的输出结果
-
脚本量大了以后,快速找到实现某个功能的脚本文件以方便排查问题
在 Python 2 时代,有一个 Frabic 可以大致实现这个功能,不知道在 Python 3 时代,有没有更好的方式?