在DAG中使用“depends_on_past”、“wait_for_downstream”和“priority_weight”参数来设置Airflow任务的调度顺序。例如:
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
from datetime import timedelta
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2021, 1, 1),
'email_on_failure': False,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(minutes=1),
'wait_for_downstream': True,
'priority_weight': 5
}
dag = DAG(
'example_dag',
default_args=default_args,
description='Example DAG',
schedule_interval=timedelta(days=1),
)
task_1 = BashOperator(
task_id='task_1',
bash_command='echo 1',
dag=dag,
)
task_2 = BashOperator(
task_id='task_2',
bash_command='echo 2',
dag=dag,
priority_weight=10,
)
task_3 = BashOperator(
task_id='task_3',
bash_command='echo 3',
dag=dag,
depends_on_past=True,
)
task_1 >> task_2 >> task_3
在此示例中,task_1在task_2之前运行,而task_3依赖于task_2和task_1的成功运行结果。task_2的优先级较高,优先调度和运行。