气流调度程序不适用于每月的作业计划

Airflow scheduler doesn't work for monthly jobs schedule

我正在尝试安排每月一次的气流作业。我将开始日期设为

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

这是上个月的日期(今天的日期);因为 'start_date+schedule_interval' 规则。我将我的计划间隔保持为:

 schedule_interval="20 9 23 * *"

按照这个逻辑,工作应该 运行 2020/23/10 9:23 UTC。但我不知道为什么它不 运行ning 甚至创建一个实例。我做的一切都正确,将开始日期保持在一个月前,甚至尝试使用 catchup=True。但是没用。

工作 运行ning 如果我尝试将日程安排保持在每天;例如:

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

并且安排时间间隔为:

schedule_interval="20 9 * * *"

它的工作文件。 运行 今天 9.20 UTC 的工作。

注意:我之前有 运行 手动作业,所以它的最后执行日期与其他日期不同。难道这就是问题所在。如果是这样,我该如何解决,或者我必须创建一份新工作。

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

When needing to change your start_date and schedule interval, change the name of the dag (a.k.a. dag_id) - I follow the convention : my_dag_v1, my_dag_v2, my_dag_v3, my_dag_v4, etc...

  • Changing schedule interval always requires changing the dag_id, because previously run TaskInstances will not align with the new schedule interval
  • Changing start_date without changing schedule_interval is safe, but changing to an earlier start_date will not create any new DagRuns for the time between the new start_date and the old one, so tasks will not automatically backfill to the new dates. If you manually create DagRuns, tasks will be scheduled, as long as the DagRun date is after both the task start_date and the dag start_date.