executor = LocalExecutor
parallelism = 4
dag_concurrency = 2
检查worker数量:检查是否有足够的worker在运行中。如果worker数量不足,可以通过增加worker数量来解决。
增加队列大小:通过增加队列大小来解决。在airflow.cfg配置文件中修改以下参数:
celeryd_prefetch_multiplier = 1
celeryd_concurrency = 16
示例代码:
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
from datetime import datetime, 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=5),
}
dag = DAG('example_dag',
default_args=default_args,
schedule_interval=timedelta(days=1),
catchup=False
)
task_1 = BashOperator(
task_id='example_task_1',
bash_command='echo "Hello world!"',
dag=dag)
task_2 = BashOperator(
task_id='example_task_2',
bash_command='echo "Airflow task is stuck in status queued"',
dag=dag)
task_3 = BashOperator(
task_id='example_task_3',
bash_command='echo "Task complete"',
dag=dag)
task_1 >> task_2 >> task_3