下面是一个示例代码,展示了如何设置Airflow DAG每周被调度器触发两次:
from airflow import DAG
from airflow.utils.dates import days_ago
from datetime import timedelta
default_args = {
'owner': 'airflow',
'start_date': days_ago(1),
'retries': 1,
'retry_delay': timedelta(minutes=5),
}
dag = DAG(
'example_dag',
default_args=default_args,
schedule_interval='0 0 * * 1,4', # 每周一和周四的UTC时间0点触发
catchup=False
)
# 添加任务
t1 = BashOperator(
task_id='task1',
bash_command='echo "Task 1"',
dag=dag,
)
t2 = BashOperator(
task_id='task2',
bash_command='echo "Task 2"',
dag=dag,
)
t1 >> t2
在上述代码中,schedule_interval
参数设置为'0 0 * * 1,4'
,表示每周一和周四的UTC时间0点触发。catchup=False
参数用于禁止回溯执行之前未执行的任务。
请根据自己的需求调整schedule_interval
参数,以确保DAG按照预期的频率触发。