revert: 移除拼音声母搜索,回到 6 位代码输入

拼音搜索的底层依赖(首次需爬沪深 A 股 5000 条全名单,几十次 TDX 协议
往返,慢机器几十秒到超时)太重,反复优化(按需加载/遮罩/单飞/预热)
都无法兼顾'不阻塞核心行情请求'与'首次可用'。用户决定放弃此功能,
回到简单稳定的 6 位代码输入。

回退 e2bf29e..2523605 共 6 个 commit 的全部改动:
- 删除 StockSearchInput / AppInitOverlay / useStockSearch
- 移除 pypinyin 依赖、/security/search-index 端点、lifespan 预热
- SymbolPicker / StocksPicker 恢复为纯 6 位代码输入
- README / CHANGELOG 同步回退

代码状态等同 v1.18.1(一键寻优多进程并发)发布后的干净基线
This commit is contained in:
Justin Gu
2026-07-06 02:50:51 +08:00
parent 25236056f7
commit c9d80617e8
13 changed files with 48 additions and 668 deletions
-18
View File
@@ -64,24 +64,6 @@ async def lifespan(app: FastAPI) -> AsyncGenerator[None, None]:
ex_client = None
app.state.ex_client = ex_client
# --- 股票搜索索引预热(后台,不阻塞服务启动) ---
# 首次 get_security_list_all("all") 要几十次 TDX 协议往返(几十秒),
# 后台提前跑,让本地缓存尽早建立。用户打开页面时大概率已就绪。
# 仅触发构建(fire-and-forget),不 await 不超时——预热是 best effort
# 没有权力取消构建 task(否则会波及同时到达的 /security/search-index 请求)。
import asyncio
async def _warmup_security_list() -> None:
try:
from easy_tdx.web.routers.market import _build_search_index
await _build_search_index(client)
logger.info("Security list warmup done")
except Exception:
logger.warning("Security list warmup failed (non-fatal)", exc_info=True)
asyncio.create_task(_warmup_security_list())
yield
# --- 依次关闭 ---