pub async fn pull_all_market_status(
backend: &BackendConn,
) -> Result<Vec<MarketStatus>>Expand description
v1.4.48 新:一次 CMD 6823 query 拿全市场状态 snapshot,避免重复 8 次查询。
v1.4.55 修正(同事反馈 market_hkfuture: NONE 即使夜盘交易中):
backend 对 CMD 6823 在 reserved=HK 时返的 snapshot 不含期货市场
(HK 主板 / 港股通 / US / CN / Bond 等都在,但 HK/US/SG/JP 期货 market_id 缺席)。
真机实测 v1.4.48 一次 snapshot 里 market_hk/us/sh/sz 都能填,但
market_hk_future / market_us_future / market_sg_future / market_jp_future 全是
NONE。
修法:并发发 5 个 CMD 6823(HK / HKFuture / USFuture / SGFuture /
JPFuture),合并结果按 market_id 去重。backend 对 reserved=HKFuture 等
期货 market type 会下发对应 market_id ∈ {5, 6, 110-119} (HK) / 60-109 (US) /
160-179 (SG) 的状态条目,合并后 pick_market_state(HKFuture) 就能命中。
代价:5 个并发请求而非 1 个(~5x backend load),但 CMD 6823 是轻量 snapshot, 实测每次 ~10-20ms,合计 <100ms 仍在可接受范围(global_state 不是高频 API)。