Cron 气流计划\u间隔和开始日期,使其始终在下一个间隔点火

Cron 气流计划\u间隔和开始日期,使其始终在下一个间隔点火,cron,airflow,mwaa,Cron,Airflow,Mwaa,如何配置气流(mwaa),使其在部署dag时每天的同一时间(太平洋标准时间早上6点)点火 我尝试过对我有意义的事情: 将计划间隔设置为0.6*** 将开始日期设置为: 似乎每当我通过将开始日期设置为前一天早上5点进行部署时,无论我在什么时候部署dag或进行气流更新,它都会在下一个早上6点启动。您可能会感到困惑,因为您希望气流像cronjob一样调度dag,而实际情况并非如此。 第一次DAG运行是根据DAG中任务的最小开始日期创建的。随后的DAG运行由调度程序进程根据DAG的计划间隔顺序创建。间隔

如何配置气流(mwaa),使其在部署dag时每天的同一时间(太平洋标准时间早上6点)点火

我尝试过对我有意义的事情:

  • 将计划间隔设置为
    0.6***
  • 将开始日期设置为:

  • 似乎每当我通过将开始日期设置为前一天早上5点进行部署时,无论我在什么时候部署dag或进行气流更新,它都会在下一个早上6点启动。您可能会感到困惑,因为您希望气流像cronjob一样调度dag,而实际情况并非如此。 第一次DAG运行是根据DAG中任务的最小开始日期创建的。随后的DAG运行由调度程序进程根据DAG的
    计划间隔
    顺序创建。间隔结束时的气流计划任务(请参阅)您可以查看此示例


    至于示例代码,请不要将
    开始日期设置为动态。这是一种不好的做法,有时可能会导致DAG永远不会执行,因为
    now()
    总是移动到
    now()+interval
    可能永远无法达到。在我的情况下,开始日期是昨天上午5点,加上一个间隔(24小时),下一个执行日期将在早上6点=tmrw,为什么不是这样?另外,如果我设置了一个静态开始日期,那么它最终将远离过去,然后气流将为所有间隔创建任务和执行日期,这将导致许多失败(噪音)。即使我设置catchup=False,为了防止回填,也会创建过多的间隔。我如何配置这两个值以确保只安排接下来的几天时间间隔?我遇到了一个类似的问题检查我的问题的答案:老实说,我还没有找到一个好的解决方案
    now = datetime.utcnow()
    now = now.replace(tzinfo=pendulum.timezone('America/Los_Angeles'))
    previous_five_am = now.replace(hour = 5, minute = 0, second = 0, microsecond = 0)
    start_date = previous_five_am