我运行着一个大型数据仓库工厂,在那里我们有许多夜间作业在运行,然而,许多作业在开始之前都依赖于提取或数据加载过程。目前,我们使用“昂贵的调度系统”来调度这些任务。
有没有办法使用开源或免费的unix/linux工具(如cron )来设置作业依赖关系?
转移到一个开源的解决方案将是伟大的,并为我们节省了很多!
问候马特
发布于 2009-11-10 21:45:58
I asked a similar question去年(也许这些天Serverfault会更好?)。不幸的是,似乎没有一个简单的,即装即用的解决方案。
发布于 2009-11-10 22:08:23
可以让Cfengine做这样的事情。您可以将其设置为cron的替代品,在预定的时间运行任意命令,还可以设置“类”,以便只有在启用了某些类的情况下才会执行某些操作。类可以是从“这是一个Linux系统”到“当前是整点后5到10分钟”、“系统负载高于值x”再到“我刚才指定的这个任意shell命令返回true”的任何内容,因此您可以设置类来指示作业依赖项。
我怀疑这是否会像调度系统一样强大(依赖项必须通过配置类来手动设置,并发调度将需要额外的脚本或配置工作),但它是免费和开源的。
Cfengine的版本2使用起来并不是特别令人愉快(用Seth Vidal的话来说,“它的sic语法杀死了kittens")。我还没有用过Cfengine 3,Puppet和Cfengine有相似的设计目标,可能更容易使用。
发布于 2009-11-10 22:00:39
Cron本身并不能处理这个问题。加载数据的进程可以在完成时写出状态文件吗?这将允许后续作业在执行实际工作之前检查状态文件。显然,这不是一个理想的解决方案(我怀疑有太多的故障点),但也许对于您正在尝试实现的目标来说,它已经足够好了。
https://stackoverflow.com/questions/1708024
复制相似问题