python - 具有异常时间的气流调度 DAG
问题描述
我试图找出在不符合通常安排的方式的气流中安排 DAG 的最佳方式。
我希望 DAG 运行的时间是周一至周五上午 9:40 到下午 4:00,每十分钟运行一次。
1)cron
可以在这里工作,因为我可以设置多个执行相同代码并为它们提供不同cron
触发器的 DAG。例如,触发第一个在 9:40 运行并运行一次,第二个在 9:50 运行(也运行一次),然后第三个从上午 10 点到 4 点运行,每 10 分钟一次。
2)气流预设(例如@hourly
)或计时器间隔在这里也不会真正起作用,因为据我所知,没有办法用奇怪的开始时间(上午 9 点 40 分)和周一至周五限制。但至少在这里我可以将 timedelta 设置为 10 分钟。
3)另一个选项是将调度程序设置为None
并使用该subprocessing
模块让第二个脚本从外部触发 DAG。
在我的理想场景中,我可以编写一个生成器,它会给 pythondatetimes
我希望触发 dag 并将其提供给 DAG 对象。我想我可以将该解决方案与上面的 3 结合起来。
解决方案 1 可以工作,但似乎很老套。
想知道其他人在这种情况下做了什么。
解决方案
*/10 9-16 1-5 * *
此 CRON 将在上午 9 点到下午 4 点(16 小时)之间每 10 分钟为您提供一次跑步,并且仅在周一到周五(0-5 点)。
我不知道您如何才能获得更精细的粒度,以便从上午 9 点 40 分到下午 4 点。
*/10
表示每 10 分钟运行一次
9-16
表示仅在 9 小时和 16 小时之间
1-5
运行 表示按照下表运行:
0 - Sun Sunday
1 - Mon Monday
2 - Tue Tuesday
3 - Wed Wednesday
4 - Thu Thursday
5 - Fri Friday
6 - Sat Saturday
7 - Sun Sunday
推荐阅读
- ansible - 将库存放入文件夹时未找到在 group_vars/all 中定义的 Ansible 变量
- python - 多次运行读取 csv 文件的 c++ 脚本
- php - 使用 foreach php 进行动态估值
- hibernate - 使用 JPA 标准省略不需要的 JOIN
- c# - “程序集加载”只是“读取元数据表”的另一个术语吗?
- maven - 在 azure-webapp-maven-plugin 中配置运行状况检查
- php - caldav php 客户端 - 获得空闲时间
- c# - 使用数据注释将十进制值截断至 2 点
- tensorflow - 保存 TensorFlow 神经网络 KFold 交叉验证模型
- git - 识别所有只有一个主分支的存储库