【问题标题】:How do I poll and schedule a DAG in Apache Airflow?如何在 Apache Airflow 中轮询和安排 DAG?
【发布时间】:2021-08-10 05:56:13
【问题描述】:

如何安排 Airflow 中的作业在 1-3 之间每 30 分钟轮询和运行一次? 我正在尝试使用以下 cron 语法作为 schedule_interval 值

  • Cron 语法 1:0 1-3 ***
  • Cron 语法 2:0 0/5 1,2,3 * * ?

cron 语法 2 是否可以在气流中工作,或者需要任何其他代码才能每 30 分钟从 1-3 轮询 DAG?

【问题讨论】:

    标签: cron airflow-scheduler airflow


    【解决方案1】:

    您指的是每个月的第 1-3 小时还是第 1-3 天?你想加入 03:30 吗?

    假设小时数(包括 03:30),这个 cron 将执行:0,30 1-3 * * *

    假设一个月中的几天,包括 03:30,这个 cron 将执行:0,30 * 1-3 * *

    互联网上有一些 cron-expression 验证器来检查您的表达式,例如https://crontab.guru(有一个“下一步”按钮可以查看接下来的 5 次)。

    或者,如果你更喜欢代码,你可以试试croniter

    from croniter import croniter
    from datetime import datetime
    
    base = datetime(2021, 1, 1)
    iter = croniter("0,30 1-3 * * *", base)
    
    for _ in range(10):
        print(iter.get_next(datetime))
    
    # 2021-01-01 01:00:00
    # 2021-01-01 01:30:00
    # 2021-01-01 02:00:00
    # 2021-01-01 02:30:00
    # 2021-01-01 03:00:00
    # 2021-01-01 03:30:00
    # 2021-01-02 01:00:00
    # 2021-01-02 01:30:00
    # 2021-01-02 02:00:00
    # 2021-01-02 02:30:00
    

    【讨论】:

    • 我希望它每天运行 1 到 3 点。此 cron 语法有效:0,30 1-3 * * *
    猜你喜欢
    • 2021-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-01
    • 1970-01-01
    • 2018-05-13
    • 1970-01-01
    相关资源
    最近更新 更多