首页 > 解决方案 > 如何配置 Airflow dag start_date 以在 cron 中运行任务

问题描述

我是 Airflow 的新手,我正在尝试了解如何正确使用调度程序。基本上我想以与使用 cron 相同的方式来安排任务。有一个任务需要每 5 分钟运行一次,我希望它在我将 DAG 文件添加到 dags 目录或对 dag 文件进行一些更改之后在下一个 dag 运行甚至 5 分钟时隙开始。

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

标签: airflowairflow-scheduler

解决方案


我想我从官方文档中找到了我自己的问题的答案: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 * * * *')


推荐阅读