为什么建议不要在Airflow中使用动态start_date?

ear*_*can 8 airflow

我已经阅读了Airflow的常见问题解答,"这有什么关系start_date?" ,但我仍然不清楚为什么建议不要使用动态start_date.

根据我的理解,DAG execution_datestart_date所有DAG任务之间的最小值确定,后续DAG运行最迟运行execution_date+ schedule_interval.

如果我将DAG的设置default_args start_date是,比如说,昨天20:00:00,有schedule_interval1天,怎么会那个破或混淆的调度,如果在所有?如果我理解正确,调度程序将使用execution_date昨天的时间触发DAG 20:00:00,并且将在今天安排下一个DAG运行20:00:00.

是否有一些我缺少的概念?

lif*_*cer 7

第一次运行将是start_date+schedule_interval.它没有运行dag start_date,它总是运行start_date+schedule_interval.

正如他们在文档中提到的那样,如果给start_date动态例如 datetime.now()并给出一些schedule_interval(1小时),它将永远不会执行该运行now()随着时间的推移并且datetime.now()+ 1 hour不可能

  • 我接受使用“ datetime.now()”是一个坏主意,但是当我编写将在未来不确定的时间部署的DAG时,有什么替代方案?我有一个场景,我不想以每1小时的时间表设置`start_time:datetime.datetime(2019,4,29)`,因为如果我在3周内部署它,它将运行21 * 24 = 504次,我不希望发生这种情况。 (2认同)