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

Airflow UI无法显示最新DAG运行记录的问题咨询

Airflow UI延迟展示最新DAG运行记录问题

现象描述

  • 所有DAG的最新运行记录,需等下次DAG运行完成后才会在UI中显示,但已确认该次运行实际已正常执行完毕。
  • 实例:UI显示最后一次运行时间为8:58,实际最后一次运行在8:59,该记录要等下一轮DAG运行结束后,才会出现在DAG列表页及Tree view中。
  • 截图验证:8:58之后有4个任务完成,其中2个完成时间在8:59之后,说明最新运行记录未及时展示。

关联DAG代码

import sys
import os
from airflow.models import BaseOperator
import datetime
import cx_Oracle
from airflow.operators.python import PythonOperator
from airflow.providers.oracle.operators.oracle import OracleOperator
from airflow import DAG
from airflow.operators.bash import BashOperator
from airflow.utils.dates import days_ago
from airflow.providers.microsoft.mssql.operators.mssql import MsSqlOperator

default_args = {
        'owner': 'airflow',
        'depends_on_past': True,
        'trigger_rule': 'all_success',
        'start_date': datetime.datetime(2023, 5, 25)
        }

def script1():
    connection = cx_Oracle.connect('Username', 'Password', 'Link')
    cur = connection.cursor()

def script2():
    connection_ibm = cx_Oracle.connect('Username', 'Password', 'Link')
    cur_ibm = connection_ibm.cursor()

with DAG(
        dag_id='Check_days',
        schedule_interval='* 5 * * 2,4,6',
        catchup = False,
        default_args = default_args
        ) as dag:
    t1 = PythonOperator(
            task_id = 'script1',
            depends_on_past = True,
            python_callable = script1,
            dag = dag
            )
    t2 = PythonOperator(
            task_id = 'script2',
            depends_on_past = True,
            python_callable = script2,
            dag = dag
            )

t1>>t2

解决方案

1. 验证元数据库同步状态

Airflow UI数据来自元数据库,先确认最新运行记录是否已写入数据库:

  • 执行SQL查询dag_run表:
    SELECT execution_date, state FROM dag_run WHERE dag_id = 'Check_days' ORDER BY execution_date DESC LIMIT 5;
    
  • 若数据库已有记录但UI未显示,重启Webserver强制刷新:
    airflow webserver restart
    

2. 排查depends_on_past配置影响

DAG及任务均设置depends_on_past: True,该配置要求当前任务需等上一周期任务成功后才能执行,若上一周期任务状态异常,可能导致当前运行状态更新延迟:

  • 检查历史任务实例是否存在failed、up_for_retry等异常状态;
  • 临时将depends_on_past改为False,测试是否仍存在延迟,排除该配置干扰。

3. 检查调度器与执行器性能

  • 查看调度器日志,排查是否有任务排队、数据库连接池不足等问题:
    tail -f $AIRFLOW_HOME/logs/scheduler/latest.log
    
  • 若使用CeleryExecutor,检查Worker状态是否正常、是否有任务堆积:
    airflow celery status
    

4. 调整UI刷新频率

Airflow UI默认自动刷新间隔为30秒,可手动点击页面右上角刷新按钮,或修改airflow.cfg中的webserver.refresh_interval参数缩短间隔。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 15:17:51