使用catchup = False时,气流DAG不会在指定时间运行

时间:2017-11-22 17:12:08

标签: airflow apache-airflow

我有一个气流DAG,对它来说回填真的没有意义。我发现使用airflow 1.8,您可以为DAG提供参数catchup=False,因此它只会启动最近的工作。 也就是说,我希望DAG从午夜开始并每天运行。 但。这就是现在的事情:DAG立即开始而不是午夜。此外,当我清除所有DAG运行时,它将立即再次启动。然后DAG将每天运行,但将在错误的时间安排+ 1天。

如何让DAG只开始运行最近的作业,在特定时间(午夜)开始?

以下是我使用的代码:

from datetime import datetime, timedelta
from airflow import DAG
from airflow.operators.dummy_operator import DummyOperator

default_args = {'depends_on_past': False,
                'start_date': datetime(2013, 1, 1)}

with DAG('test_dag',
         default_args=default_args,
         schedule_interval=timedelta(days=1),
         catchup=False
         ) as dag:
    test = DummyOperator(task_id='test')

1 个答案:

答案 0 :(得分:0)

您可以将crontab放入schedule_interval,可以在此处找到更多详细信息:https://airflow.apache.org/scheduler.html#dag-runs,例如schedule_interval="0 0 * * *"

此外,Airflow正在UTC下运行,请将您的“午夜”调整为正确的时区。