yml2213
2f2d44f601
perf(admin-worker): 筛选统计加 10 秒短缓存,把成本增长与访问量解耦
金额落到派生列后,统计查询从生产实测 3.5~4.4 秒降到 ~400ms(约 9 倍),
但仍要扫全部命中工单(9.6 万行宽表 + 关联 orders + 拼单汇总),成本随工单量线性增长,
数据再翻几倍会重新撞上 500ms 慢查询线。
因此按"筛选指纹"缓存 10 秒并合并并发请求(WorkerListCache.getOrSet):
单位时间内的计算次数被封顶在 TTL 上,不再跟着刷新次数走;多人同时刷列表只会算一次。
代价是统计与分页总数最多滞后 10 秒,期间前端已由实时事件快照就地修正 statistics,
刷新后自动对齐。
指纹覆盖 statuses/status/workOrderId/keyword/workerSharingId/workerId/workerLevelIds/
categoryId/acceptanceMode/giftPhase/vipEvidencePending/useOperationalStatus/创建日期,
并加静态守卫防止后续漏字段导致不同筛选互相污染。
验证:后端 531 项单测全绿(新增 1 项守卫)。
2026-10-01 13:02:09 +08:00
..
2026-10-01 13:02:09 +08:00
2026-09-19 11:06:32 +08:00
2026-10-01 12:35:59 +08:00