在前后端开发联调前 的提交20260223

This commit is contained in:
Neo
2026-02-23 23:02:20 +08:00
parent 254ccb1e77
commit fafc95e64c
1142 changed files with 10366960 additions and 36957 deletions

60
scripts/ops/analyze_v8.py Normal file
View File

@@ -0,0 +1,60 @@
# -*- coding: utf-8 -*-
"""分析 v8 执行结果,提取每个任务的成功/失败状态。"""
import json
import re
from pathlib import Path
from dotenv import load_dotenv
load_dotenv(Path(__file__).resolve().parents[2] / ".env")
from _env_paths import get_output_path
log_dir = get_output_path("SYSTEM_LOG_ROOT")
raw = json.loads((log_dir / "2026-02-21__etl_run_raw_v8.json").read_text("utf-8"))
error_log = raw.get("error_log", "")
output_log = raw.get("output_log", "")
full = output_log + "\n" + error_log
# 提取任务结果
success_pat = re.compile(r"任务 (\S+) 执行成功")
fail_pat = re.compile(r"任务 (\S+) 失败[:]?\s*(.*)")
skip_pat = re.compile(r"跳过 (\S+)")
successes = success_pat.findall(full)
failures = [(m.group(1), m.group(2)[:120]) for m in fail_pat.finditer(full)]
skips = skip_pat.findall(full)
# 去重
seen_s = set()
unique_successes = []
for s in successes:
if s not in seen_s:
seen_s.add(s)
unique_successes.append(s)
seen_f = set()
unique_failures = []
for task, reason in failures:
if task not in seen_f:
seen_f.add(task)
unique_failures.append((task, reason))
print(f"=== v8 执行结果分析 ===")
print(f"成功: {len(unique_successes)}")
for s in unique_successes:
print(f"{s}")
print(f"\n失败: {len(unique_failures)}")
for task, reason in unique_failures:
short = reason.split("\n")[0][:100]
print(f"{task}: {short}")
# 查找首个非级联错误
first_error_pat = re.compile(r"ERROR.*?(?:错误|Error|exception|Traceback)", re.IGNORECASE)
in_failed_count = error_log.count("InFailedSqlTransaction")
print(f"\nInFailedSqlTransaction 出现次数: {in_failed_count}")
# 查找根因错误(非 InFailedSqlTransaction 的 ERROR
error_lines = [l for l in error_log.split("\n") if "ERROR" in l and "InFailedSqlTransaction" not in l]
print(f"\n非级联 ERROR 行 ({len(error_lines)} 行):")
for line in error_lines[:20]:
print(f" {line.strip()[:150]}")