我已经评估气流一段时间了,并且真的很喜欢许多功能。我现在正尝试在POC上替换现有的Cron作业。
我正在努力进行必要的精神体操训练,从计划任务按计划执行的cron到cron规范针对该间隔的气流以及未指定实际运行时间的气流,这个(即间隔之后的运行)。
例如,我有一个日常工作,每天晚上10:30进行。它的工作是完成对当天到达的所有数据的处理。
听起来很简单,cron规范为“ 30 22 * * 1-5”(因此任务仅在工作日运行)。然后,我将{{ds}}作为参数传递给任务(bash shell脚本)。
我天真地使用了气流规格,当然我没有得到我期望的结果。该dag在该时段结束时运行,因此我没有在星期一运行执行,并且在星期二的执行{{ds}}设置为星期一。
我可以通过不传递ds而是{{next_execution_date}}来解决这个问题,然后当我需要指定实际要工作的前一天时,问题就变成了回填或重播。这感觉容易出错并且难以管理。
另外一个复杂的问题是1-5规范,该规范也使间隔计算再次陷入混乱,这使得很难确定作业将在何时运行以及在什么时期运行。
我已经在它的工作方式上看到了很多帖子,看来这里的逻辑引起了很多混乱。在这里寻找最佳实践吗?
我确实想知道是否有单个cron字符串来指定时间间隔会在某种程度上超载,因为它既用于指定任务负责的时间段,又用于导出执行任务的时间。