Skip to main content

Module price_reminder_cooldown

Module price_reminder_cooldown 

Source
Expand description

v1.4.106 codex 0450 F3 (P2): PriceReminder 数量上限 cooldown cache.

抽自 crates/futu-gateway-qot/src/handlers/qot/price_reminder.rs (audit 0450 整体重构落点) — 不允许 inline integration, 必须独立 module + bridge.rs field 注入.

§C++ 来源

o-src/FutuOpenD/Src/NNDataCenter/Quote/NNData_PriceReminder.cpp:101-164:

  • SetTotalPriceReminderNumExceed(enLimitMkt) — 在 backend ack RSP_CODE_NUM_LIMIT (=2) 时, 把 (enLimitMkt → svr_now) 写进 m_mapNumExceedTime.
  • IsTotalPriceReminderNumExceed(enLimitMkt) — Add 前检查 cooldown 是否 仍在 10 min 内 (PriceReminderRestrictTime = 60*10); 是则 short-circuit 不再 call backend.
  • SetStockPriceReminderNumExceed(stock_id, type) / IsStockPriceReminderNumExceed — 同样语义但按 (stock_id, reminder_type) 维度.
  • ResetTotalPriceReminderNumExceed — 在 Del / DelAll 成功 ack 后清 cooldown.
  • ResetStockPriceReminderNumExceed(stock_id, type) — Del 时按 type 清, DelAll 时 (type=None) 清整个 stock 下所有.

§ack-then-commit 语义 (F1)

cooldown 仅在 backend ack 后写入 — 不能在 client 请求 in-flight 期间 提前 commit. 这与 C++ OnOMEvent_Reply_SetPriceReminder (line 1007-1014) 完全对齐.

§全部限流市场分类 (来自 C++ APIServer_Qot_PriceReminder.cpp:235-279

GetPriceReminderLimitMarket)

  • HK 股 / HK 期权 (按 IsOptionCode 分两类)
  • US 股 / US 期权
  • CN (沪深)
  • SG / JP

§线程模型

dashmap::DashMap 作 lock-free concurrent — 多 handler 并发 Add/Del 安全.

Structs§

PriceReminderCooldownCache
PriceReminder cooldown cache.

Enums§

LimitMarket
NN_PriceReminderLimitMarket 枚举 — 来自 C++ o-src/FutuOpenD/Src/NNData/Quote/Define/NNData_PriceReminder_Define.h (推断, C++ 端是常规 enum class).

Constants§

PRICE_REMINDER_RESTRICT_SECS
C++ PriceReminderRestrictTime = 60 * 10 秒 = 10 分钟.