气流计划程序不适用于每月工作计划

时间:2020-10-23 09:41:13

标签: airflow airflow-scheduler airflow-operator

我正在尝试安排每月的气流工作。我将开始日期保持为

'start_date':datetime(2020,9,23),

是上个月的日期(今天的日期);因为有'start_date + schedule_interval'规则。我将时间表间隔设置为:

 schedule_interval="20 9 23 * *"

通过此逻辑作业,应在2020/23/10 9:23 UTC上运行。但是我不知道为什么它没有运行甚至没有创建实例。我做对了所有事情,将开始日期保持在一个月之前,甚至尝试使用catchup = True。但这无济于事。

如果我尝试将日程表保持为每天,Job正在运行;例如:

start_date':airflow.utils.dates.days_ago(1)

和计划间隔为:

schedule_interval="20 9 * * *"

和它的工作文件。今天在世界标准时间9.20完成工作。

注意:我已经手动运行过该作业,因此它具有上次执行日期。可能是问题所在。如果是这样,我该如何解决,还是必须创建新工作。

1 个答案:

答案 0 :(得分:1)

更改schedul_interval可能会导致问题,建议创建一个新的DAG,请参见Common Pitfalls on Apache Airflow Confluence

当需要更改开始日期和计划间隔时,请更改 dag的名称(又称dag_id)-我遵循约定: my_dag_v1,my_dag_v2,my_dag_v3,my_dag_v4等...

  • 更改时间表 时间间隔始终需要更改dag_id,因为先前已运行 TaskInstance将不符合新的计划间隔
  • 改变 无需更改schedule_interval的start_date是安全的,但更改为 较早的start_date暂时不会创建任何新的DagRun 在新的start_date和旧的start_date之间,因此任务不会 自动回填到新日期。如果您手动创建 DagRun,任务将被安排,只要DagRun日期在 任务start_date和dag start_date。