繁体   English   中英

为什么 Airflow 继续运行 DAG?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM