api对气流的作用?

时间:2018-10-25 07:57:44

标签: api airflow

我被搜索到有关airflow documentatuon的赶超情况。

但我仍然不了解此API的目的。

  

赶上(布尔)–执行调度程序赶上(或仅运行最新)?默认为True

谢谢

1 个答案:

答案 0 :(得分:2)

您将在documents about scheduling backfill and catchup中找到详细的说明。

让我尝试通过一个示例对其进行扩展。

假设今年1月的日历:

    January 2018
Su Mo Tu We Th Fr Sa
    1  2  3  4  5  6
 7  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

假设您在23日使用start_date=datetime(2018, 1, 1)schedule_interval='0 0 * * MON'添加了DAG。

使用catchup=True首先解析DAG时,调度程序将立即认识到时段1-1至1-8、1-8至1-15、1-15至1-22已经关闭并通过。从23日添加DAG开始,它将为execution_date 2018-01-01安排DAG运行。如果有max_active_runs > 2,它还将为2018-01-082018-01-15安排DAG运行。

使用catchup=False首先解析DAG时,调度程序仍会识别出相同的时间段已结束并已过去。但是,它将只为execution_date 2018-01-15安排DAG运行,从您在23日添加DAG开始。 IE将首先运行最近的关闭时间段,而不运行任何先前的时间段。然后,下一次运行将从2018-01-22开始的2018-01-29T00:00:00±scheduler_lag。但是,如果2018-01-15运行完成之后,您暂停了DAG,然后在2018-01-29T09:00上将其取消暂停,则调度程序将看到之前有dag运行,并且最近一段时间的开始时间已经过去,就无法在这个错过的时期进行追赶。