【发布时间】:2019-11-27 11:59:36
【问题描述】:
我是一名数据工程师,经常使用气流。
使用新的开始日期重新部署 dag 时,最佳做法如 here 所示:
不要更改 start_date + 间隔:当 DAG 运行时,调度程序数据库包含该 DAG 运行的实例。如果您更改 start_date 或间隔并重新部署它,调度程序可能会因为间隔不同或 start_date 回来了而感到困惑。处理此问题的最佳方法是在更改 start_date 或间隔后立即更改 DAG 的版本,即 my_dag_v1 和 my_dag_v1。这样,旧版本的历史信息也会保留。
但是,在删除所有以前的 DAG 和任务运行后,我尝试重新部署具有新开始日期的 dag。它按预期工作了一天(使用新的开始日期),然后又开始使用旧的
这是什么原因?如果可以,请深入。
【问题讨论】:
-
Airflow 的
scheduler是 complex and mysterious 工程。它有相当多的细微差别,并且已经提出了major changes。在此之前People recommend 定期重新启动它(这对于几乎每个长时间运行的进程都是如此)。至少更改start_date或schedule_interval需要立即重启(否则您会遇到一些意外)