【问题标题】:Airflow scheduler doesn't work for monthly jobs schedule气流调度程序不适用于每月的工作计划
【发布时间】:2020-10-23 09:41:13
【问题描述】:

我正在尝试安排每月一次的气流作业。我将开始日期保留为

'start_date':datetime(2020,9,23),

上个月的日期(今天的日期);因为 'start_date+schedule_interval' 规则。我将我的日程安排间隔保持为:

 schedule_interval="20 9 23 * *"

按此逻辑作业应在 2020/23/10 9:23 UTC 运行。但我不知道为什么它没有运行甚至没有创建实例。我做对了一切,将开始日期保持在一个月前,甚至尝试使用 catchup=True。但这无济于事。

如果我尝试将日程安排为每天,则作业正在运行;例如:

start_date':airflow.utils.dates.days_ago(1)

并安排时间间隔为:

schedule_interval="20 9 * * *"

它的工作文件。今天 9.20 UTC 开始工作。

注意:我之前已经手动运行过该作业,因此它的最后执行日期是其他日期。会不会是这个问题。如果是这样,我该如何解决它或者我必须创建一个新工作。

【问题讨论】:

    标签: airflow-scheduler airflow


    【解决方案1】:

    更改schedul_interval 可能会导致问题,建议创建新的 DAG,请参阅Common Pitfalls on Apache Airflow Confluence

    当需要更改您的 start_date 和计划间隔时,请更改 dag 的名称(a.k.a. dag_id) - 我遵循约定: my_dag_v1、my_dag_v2、my_dag_v3、my_dag_v4 等...

    • 更改时间表 间隔总是需要更改 dag_id,因为之前运行 TaskInstances 将不符合新的计划间隔
    • 改变 start_date 不更改 schedule_interval 是安全的,但更改为 较早的 start_date 暂时不会创建任何新的 DagRuns 在新的 start_date 和旧的 start_date 之间,所以任务不会 自动回填到新日期。如果手动创建 DagRuns,任务将被调度,只要 DagRun 日期在之后 任务 start_date 和 dag start_date。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-05
      • 1970-01-01
      • 1970-01-01
      • 2019-01-20
      • 1970-01-01
      相关资源
      最近更新 更多