如何配置Airflow dag start_date以运行cron中的任务

时间:2019-09-05 08:02:23

标签: airflow airflow-scheduler

我是Airflow的新手,我试图了解如何正确使用调度程序。基本上,我想像使用cron一样调度任务。有一个任务需要每5分钟运行一次,我希望它在将DAG文件添加到dags目录中或对dag文件进行一些更改之后,甚至在5分钟的插槽中从dag运行开始。

我知道DAG在schedule_interval的末尾运行。如果我添加一个新的DAG并使用start_date = days_ago(0),那么从一天的开始我将获得不必要的运行。在dag文件中硬编码某些特定的开始日期也很愚蠢,即start_date = datetime(2019,9,4,4,10,1,0,818988)。我的方法是错误的还是需要设置start_date的某些特定原因?

1 个答案:

答案 0 :(得分:1)

我认为我从官方文档https://airflow.apache.org/scheduler.html#backfill-and-catchup

中找到了自己的问题的答案。

通过关闭追赶,仅针对最近的时间间隔创建DAG运行。因此,我可以将start_date设置为过去的任何值,并按以下方式定义dag:

dag = DAG('good-dag', catchup=False, default_args=default_args, schedule_interval='*/5 * * * *')