可以在 DAG 文件中的每个 Task 使用 @apply_defaults 装饰器,并设置成默认的开始日期(start_date)。这样就可以避免日期时间的重复更新。
示例代码:
from airflow import DAG
from airflow.decorators import dag, task, apply_defaults
from datetime import datetime
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2021, 1, 1),
'email_on_failure': False,
'email_on_retry': False,
'retries': 1
}
@dag(default_args=default_args, schedule_interval=None, catchup=False)
def my_dag():
@task()
@apply_defaults(start_date=datetime(2021, 1, 1))
def my_task():
# do something here
pass
my_task = my_task()
dag = my_dag()