如何解决气流 schedule_interval 和 start_date 让它总是在下一个间隔触发
如何配置气流 (mwaa) 以便在部署 dag 时每天同时(太平洋标准时间早上 6 点)启动?
- 将 schedule_interval 设置为
0 6 * * *
。 - 将开始日期设置为:
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 举报,一经查实,本站将立刻删除。