Airflow DAGs 可能会自动禁用,是因为其运行超时时间已经超过了默认的时间限制。可通过在 DAG 定义中设置 default_args
字典中的 dagrun_timeout
参数来解决该问题。以下是一个示例:
from datetime import datetime
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),
'dagrun_timeout': 300 # 设置 DAG 运行超时时间为 300 秒
}
dag = DAG('my_dag', default_args=default_args)
task1 = BashOperator(
task_id='task1',
bash_command='echo "hello"',
dag=dag
)
task2 = BashOperator(
task_id='task2',
bash_command='echo "world"',
dag=dag
)
task1 >> task2
在上述示例中,default_args
字典中的 dagrun_timeout
参数被设置为 300 秒,即 5 分钟。如果 DAG 运行时间超过该时间,它将自动被禁用。通过设置适当的超时时间,可避免 DAG 被意外禁用的问题。