我们目前正在使用 Apache Mesos 与 Marathon 和 Chronos 来安排长时间运行和批处理过程。
如果我们能像 Oozie 一样创建更复杂的工作流程,那就太好了。例如,当文件出现在某个位置或某个应用程序完成或调用 API 时,就会启动一项工作。
虽然我们似乎可以使用 Marathon/Chronos 或 Singularity 来做到这一点,但似乎没有现成的可用界面。
您可以使用 Chronos 的/scheduler/dependency
端点来指定“在此作业运行之前必须至少运行一次的所有作业”。在您的每个 Chronos 作业上执行此操作,您可以构建任意复杂的工作流 DAG。
https://airbnb.github.io/chronos/#Adding%20a%20Dependent%20Job
Chronos 目前仅根据时间或依赖触发器来安排作业。文件更新、git push 或电子邮件/推文等其他事件可以建模为目标作业将依赖的等待 X 作业。