如何安排DAG Airflow从现在开始5分钟内首次运行?

时间:2019-11-18 21:11:55

标签: airflow airflow-scheduler

情况:

  • 气流1.10.6
  • 今天是11月18日,晚上8点。
  • airflow.cfg.default_timezone =系统(即欧洲/柏林)

我想每天晚上8.05运行我的新“ sample_job”。

我的配置:


default_args = {
    'owner': 'Airflow',
    'start_date': datetime.datetime(year=2019,month=11,day=18,hour=20,minute=0),
    'execution_timeout' : timedelta(hours=13)
}

dag = DAG(
'sample_job', 
 default_args=default_args, 
 catchup=False, 
 max_active_runs=1, 
 schedule_interval='05 20 * * *')

现在,当我在8.03 pm激活作业时,我意识到该作业将以昨天的日期作为last_run日期立即执行。

我该如何更改设置,以免在8.05 pm之前执行作业?

1 个答案:

答案 0 :(得分:0)

第一个DAG运行在start_date + schedule_interval [1]之后立即触发。您的计划时间间隔为 一天 ,并且您希望在2019-11- 18 之后开始第一次DAG运行:05,所以您的start_date应该是2019-11- 17 20:05。

关于为什么在打开DAG时立即开始运行DAG,我怀疑这是因为您以前用不同的start_dateschedule_interval安排了DAG的原因。如果更改了start_dateschedule_interval,建议也更改dag_id [2],因为这样会为该数据集创建一组新的元数据(和新的计划)重命名的DAG。