You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache Airflow 2.6.1任务B持续处于running状态求助

Airflow任务B持续处于running状态排查

我使用Apache Airflow 2.6.1版本,通过终端执行airflow standalone以SequentialExecutor模式本地运行一个简单DAG。第一个任务A仅包含打印语句,运行正常,但第二个任务B一直处于'running'状态(通过UI查看)。终端除偶尔出现INFO - 0 triggers currently running外无其他输出。

当前DAG仅使用PythonOperator,任务B调用geo函数生成GeoDataFrame,以下是完整DAG代码:

from datetime import timedelta
from airflow import DAG
from airflow.operators.python_operator import PythonOperator
import osmnx

default_args = {
    'owner': 'airflow',    
    'retries': 1,
    'retry_delay': timedelta(minutes=5),
    }

dag = DAG(
    dag_id = "demo",
    default_args=default_args,
    schedule_interval='@once',  
    dagrun_timeout=timedelta(minutes=15),
    description='demo',
    start_date = airflow.utils.dates.days_ago(1),
    )

def hello():
    print('hello')

def geo():
    print('opened')
    place = 'California, USA'
    gdf = osmnx.geocode_to_gdf(place)
    print('made a gdf')

task_a = PythonOperator(
    task_id='A',
    python_callable = hello,
    dag=dag
)

task_b = PythonOperator(
    task_id='B',
    python_callable = geo,
    dag=dag
)

task_c = PythonOperator(
    task_id='C',
    python_callable = hello,
    dag=dag
)

task_a >> task_b >> task_c

任务状态截图

排查建议

  • 查看任务B的详细日志:进入Airflow UI中任务B的实例页面,点击"Logs"查看完整执行日志,确认函数是否卡在某一步、是否有报错信息。当前代码仅用print输出,在Airflow中建议改用logging模块输出日志,更易追踪执行状态:

    import logging
    def geo():
        logging.info('geo函数开始执行')
        place = 'California, USA'
        logging.info(f'正在获取{place}的地理数据')
        gdf = osmnx.geocode_to_gdf(place)
        logging.info(f'地理数据生成完成,数据行数:{len(gdf)}')
    
  • 单独测试geo函数:在Airflow环境外直接运行geo函数,确认该函数是否能正常完成、耗时多久。比如在终端执行以下代码:

    import osmnx
    place = 'California, USA'
    gdf = osmnx.geocode_to_gdf(place)
    print(gdf)
    

    若函数本身执行缓慢或报错,说明问题出在osmnx调用而非Airflow配置。

  • 检查网络与依赖:osmnx.geocode_to_gdf依赖OpenStreetMap的服务,若网络环境较差,可能导致请求超时或卡住。同时确认osmnx版本与当前Python环境兼容,无依赖冲突。

  • 调整超时配置:当前DAG设置了dagrun_timeout=timedelta(minutes=15),若任务B实际执行时间超过15分钟,可能导致异常,但SequentialExecutor下会有日志提示。可先确认函数单独执行的耗时,再调整该参数。

内容的提问来源于stack exchange,提问作者Ellio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 05:37:02