意外的Dag时间表catchup = false

时间:2019-01-14 04:00:29

标签: airflow airflow-scheduler

我正在学习Airflow的基础知识(apache-airflow == 1.10.1,MacBook OSX),无法理解为dag运行创建的实际时间表。

使用单个PythonOperator创建了一个简单的DAG:

  • 过去的start_date
  • schedule_interval:每10分钟安排一次
  • catchup是错误的,因为我不想要进行任何回填

系统将导致以下dag运行(执行日期,/开始日期)

  1. (2019-01-14 01:57:10.404054,2019-01-14 02:17:10.410499)

  2. (2019-01-14 02:07:10.404054,2019-01-14 02:17:12.226403)

  3. (2019-01-14 02:17:10.404054,2019-01-14 02:27:11.797695)

考虑到这一点,我在2019-01-14T02:17:10(今天是UTC 14 Jan 19 @ 2:17:10am)附近激活了时间表,我期望系统仅在#2和3行中创建时间表。第1行中的第一个??

这里的代码:

default_args = {
    'owner': 'ga_mp', 'depends_on_past': False,
    'start_date': datetime(2019, 1, 10, 4, 20, 00),
}
dag = DAG(dag_id = 'my_dag_v1',
          default_args=default_args,
          schedule_interval=timedelta(minutes=10),
          catchup=False
       )

非常感谢!

2 个答案:

答案 0 :(得分:1)

我已经在https://stackoverflow.com/a/61740904/5691525

中对此进行了详细解释

有一个bug创建了额外的DagRun,它已在Airflow Master中修复,并将在Airflow 1.10.11中可用

答案 1 :(得分:0)

我相信,按照计划创建的新的气流障碍在创建后会自动运行。您最初是在1:57创造了dag吗?这可能解释了第1行的运行情况。