通过使用Airflow的schedule_interval
和start_date
参数,可以矫正调度时间和运行时间之间的差异。例如,如果我们希望任务每天早上6点运行,但实际上任务总是在6:05运行,我们可以这样设置:
from datetime import datetime, timedelta
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2022, 1, 1, 6),
'email_on_failure': False,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(minutes=5),
}
dag = DAG(
'my_dag',
default_args=default_args,
schedule_interval=timedelta(days=1),
)
t1 = BashOperator(
task_id='my_task',
bash_command='echo "Hello World"',
dag=dag,
)
在上述代码中,start_date
被设置为每天早上6点,并且任务每天都会运行一次。如果调度器在6:05运行,则任务也将在6:05运行,因此不会出现任何调度问题。
上一篇:Airflow调度未更新