微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

气流 schedule_interval 和 start_date 让它总是在下一个间隔触发

如何解决气流 schedule_interval 和 start_date 让它总是在下一个间隔触发

如何配置气流 (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

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

解决方法

您的困惑可能是因为您希望 Airflow 安排 DAG,例如 cronjob,但实际上并非如此。 第一个 DAG 运行是根据 DAG 中任务的最小 start_date 创建的。后续 DAG 运行由调度程序进程根据您的 DAG 的 schedule_interval 按顺序创建。 Airflow 在时间间隔的 END 安排任务(请参阅 docs),您可以查看此 answer 以获取示例。

至于您的示例代码 - 切勿将 start_date 设置为动态。这是一个糟糕的做法,有时会导致 DAG 永远不会被执行,因为 now() 总是移动到 now() + interval 可能永远不会到达看到 Airflow FAQ

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。