当气流在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)
答案 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