Generated by Answer me with HTML 0.5.5 · 2026-10-20 20:35 · ★ Star on GitHub
K线缓存刷新失败 · 原因定位
2026-10-20 LXXG 盘后流水线 step3
Lead: 一只指数代码的除权接口超时,把整批判成了失败。行情数据本身没丢。
结论
单点超时,整批判失败
sh000002(上证A股指数)拉除权记录超时。
脚本把任一标的失败当作整批失败,退出码 1。
实际数据已到位:9713 只 npz 里只有这 1 只落后 1 天。
- 落后文件:1 只,共 9713 只
- 落后日期:20261019,差 1 天
- 下游信号库:正常,ok=5389
- 今日选股:正常出报告
- 历史频次:近 20 个交易日仅今天 1 次
证据链
- 18:30流水线启动step1b 数据日=20261019,包待更新
- 18:36TDX 包刷新549.5MB,12212 只,数据日=20261020
- 18:57qfq 重建开始stale_only,2 进程
- 19:01单点超时[w1] xdxr_err sh000002: TimeoutError
- 19:01全批判失败ok=8492 exists=1220 short=628 xdxr_err=1
- 19:04信号库重建ok=5389,正常
- 19:07选股报告市场 2026-10-20,正常
代码为什么没兜住
fq_utils.py:22:客户端初始化_client()写在 try 之外,超时直抛build_qfq_from_day.py:277:xdxr_err ≥ 1即sys.exit(1)- 判断不看失败代码是不是指数,一只失手全线标红
- 指数没有分红,本不该查除权,查了反成失效点
已修复与加固建议
已修复
20:28 重跑 build_qfq_from_day.py --stale-only,补建 1 只成功,rc=0。
复查全库落后文件 = 0,sh000002 已到 20261020。
加固三条,待你拍板:
- 客户端初始化移进 try,加 3 次退避重试
- 指数代码(sh000xxx / sz399xxx / 880 / 881)跳过除权查询
- 仅指数失败时降为 WARN,退出码不置 1