为什么未计划Airflow DAG?

时间:2018-09-11 12:59:02

标签: airflow-scheduler

当气流在12:35(星期二)开始时,以下代码在12:37触发DAG。

但是,当我从代码中删除“,minutes = 10”时,运行未计划。 为什么会这样?

start_date = datetime.utcnow().replace(tzinfo=pytz.UTC) \
                      - timedelta(days=7, minutes=10)
dag = DAG(default_args={'start_date': start_date},
          schedule_interval='37 12 * * tue', dag_id='test1')
task = PythonOperator(...)
dag >> task

不带分钟的代码变体:

start_date = datetime.utcnow().replace(tzinfo=pytz.UTC) \
                      - timedelta(days=7)

1 个答案:

答案 0 :(得分:0)

我自己找到了解决方案。当气流一直在“重建” DAG时,“现在”在移动,请参阅https://airflow.apache.org/faq.html#what-s-the-deal-with-start-date 这就是为什么工作没有开始的原因。

因此,我定义了一个固定的开始日期(过去的任何日期),并使用了LatestOnlyOperator。这行得通。

start_date = datetime(2018, 9, 1, 0, 0, tzinfo=pytz.UTC)
dag = DAG(default_args={'start_date': start_date},
          schedule_interval='37 12 * * tue', dag_id='test1')
latest_only = LatestOnlyOperator(task_id='latest_only', dag=dag)
task = PythonOperator(...)
dag >> latest_only >> task