处理回填和持续运行的时间表间隔不同的最佳方法是什么?
对于回填,我想使用每天间隔,但对于连续运行,我想使用每小时间隔。
我可以想到三种方法:
我看到的最简单的方法是在一个.py文件中定义两个DAG。 dag_backfill
(每天间隔),开始日期为过去datetime.now()
,结束日期为dag_ongoing
,每小时间隔,开始日期datetime.now()
,{ {1}}完成。但是,不建议在一个文件中使用两个DAG here:
我们确实支持每个python文件不止一个DAG定义,但不建议这样做,因为我们希望从故障和部署的角度更好地隔离DAG ...
两个.py文件,它们导入构成管道的相同python函数。我担心用这种方法使单独的文件保持一致。
只有一个小时间隔的DAG,它检查运行日期是否过去1天以上,如果是,则仅在这些日期的午夜运行。我觉得这很不完善,因为它将使回填的计划(至少从gui主页开始)难以进行。
这种或已知的最佳做法是否有共同的模式?