mirror of
https://ghfast.top/https://github.com/aeroxw/tick-stock-panel.git
synced 2026-09-12 20:14:16 +08:00
三处根因:
1. 限流逻辑失效 (kline_sync.py ×3, index_sync.py ×2)
条件 `len(chunks) > rpm` 在 free 档恒为 False (56 chunks < 60 rpm),
导致节流 sleep 永不执行, 请求密集打出触发服务端限流 → 卡死。
改为始终按 interval (60/rpm) 节流。
2. 卡死看门狗无法自愈 (pipeline_jobs.py, api/pipeline.py)
原超时检查只在再次点「同步」时触发, 等待中永不回收。
抽出 JobStore.reap_stale() (STALE_JOB_TIMEOUT_S=600), 在
/run 和 /jobs/{id} 轮询端点都调用 — 前端每秒轮询, 10分钟后
必定自动回收卡死 job, UI 不再永久停在 26%。
3. 启动期视图注册异常捕获不足 (repository.py)
_register_views 只捕获 duckdb.IOException, 跨版本/平台空目录
可能抛 CatalogException 等炸掉 lifespan。放宽到 Exception。
Co-authored-by: shy3130 <shy3130@users.noreply.github.com>