气流 Schedule_interval 和 start_date 使其始终触发下一个间隔

cos*_*r11 4 cron airflow mwaa

如何配置气流 (mwaa),以便它在部署 dag 时每天同一时间(太平洋标准时间上午 6 点)触发?

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

  1. 将 Schedule_interval 设置为0 6 * * *
  2. 将开始日期设置为:
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
Run Code Online (Sandbox Code Playgroud)

似乎每当我通过将 start_date 设置为前一天上午 5 点进行部署时,无论我何时部署 dag 或进行气流更新,它总是会在接下来的早上 6 点触发

Ela*_*lad 5

您的困惑可能是因为您希望 Airflow 像 cronjob 一样安排 DAG,但事实并非如此。\n第一个 DAG 运行是根据start_dateDAG 中任务的最小值创建的。后续 DAG 运行由调度程序进程根据您的 DAG\xe2\x80\x99sschedule_interval顺序创建。Airflow 在时间间隔结束时安排任务(请参阅文档),您可以查看此答案以获取示例。

\n

至于你的示例代码 - 永远不要将你的代码设置start_date为动态的。这是一种不好的做法,有时会导致 DAG 永远不会被执行,因为now()总是移动到now() + interval可能永远不会到达,请参阅气流常见问题解答

\n