[英]Why does Airflow keep running the DAG?
我正在为一个数据工程项目学习 Airflow,并且我设置了一个 DAG 来在线检索 csv 文件。 我正在测试 schedule_interval 并最初将其设置为 30 分钟。
我在 22:17 启动了 Airflow 调度程序,并期望 DAG 至少在 22:47 执行。 但是,DAG 几乎每秒都在运行,我从日志中看到执行日期是几个小时前。
这是因为 UTC 与我当地时间的时差吗? DAG 试图赶上时差?
您的 DAG 正在回填。 Airflow 将尝试从启动时赶上您的当前时间。
例如,如果您启动 DAG 的确切时间是 3 月 6 日上午 10:00,并且 DAG 的执行日期为 3 月 6 日上午 6:00(假设相同的时区),调度间隔为 30 分钟,那么DAG 将立即运行,直到它“赶上”到上午 10:00。
也就是说,它将一个接一个地运行(6:00AM - 10:00AM = 4 hours; 4 hrs/30 mins = 8)
8 次,直到它到达当前时刻。
这是因为 UTC 与我当地时间的时差吗? DAG 试图赶上时差?
似乎是这样,如果 DAG 的执行开始日期是您启动 DAG 的任何时间。
这将非常有帮助。 如果您也可以粘贴 DAG 或至少粘贴 DAG 配置 object。
确保设置标志catchup=False
以便不会发生回填。 默认值为True
。 如果您没有设置catchup=False
调度程序假定它需要回填,因此它每 30 秒运行一次。
请参阅下面的示例
dag = DAG(
dag_id='my_test_dag'
, default_args=default_args
, schedule_interval='1 * * * *'
, start_date=datetime(2020, 9, 22, tzinfo=local_tz)
, catchup=False
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.