perf: 优化空场监控
This commit is contained in:
10
AGENTS.md
10
AGENTS.md
@@ -11,9 +11,15 @@
|
||||
- `src/main/`:Electron 主进程、第三方网络请求、凭证和适配器注册。
|
||||
- `src/main/settings/`:按球场保存的本机配置与原子写入逻辑,存储位置使用 Electron `userData` 目录。
|
||||
- `src/main/bookings/`:待支付锁场订单摘要与恢复逻辑;不得持久化支付签名。
|
||||
- `src/main/monitors/`:空场监控任务、10 秒轮询调度、变化去重和系统通知;只允许调用无凭证列表接口。
|
||||
- `src/main/monitors/`:空场监控任务、10 秒轮询调度、整点立即检查、变化去重和系统通知;只允许调用无凭证列表接口。整点检查必须绕过常规轮询冷却,但不得与已有检查并发或在同一整点重复触发。
|
||||
- 带报名活动(如双打活动)的时段统一视为已订场地;不得计入可订数量,也不得触发空场监控提醒。
|
||||
- 空场监控日期可选;未指定日期的任务持续滚动检查主界面支持的未来 7 天数据,不能在跨日时自动失效。
|
||||
- 自动预定是监控任务级、用户显式开启的一次性写操作。开启前必须明确告知“只锁场不支付”并校验球场访客凭证;成功后立即转为待支付且禁止再次下单。服务端明确失败只允许重试一次,第二次失败后自动熔断;结果不确定时禁止重试并立即熔断。
|
||||
- 监控时间段表示“同一天、同一个物理场地完整连续覆盖整个区间”,不是区间内任意单个小时。任一小时缺失、不可订、属于报名活动或来自不同场地时均不命中;提醒、可订数量和自动预定统一以完整连续组合为单位。
|
||||
- 连续组合自动预定必须作为一笔请求提交全部组成时段,下单前逐项重新校验可用性、场地身份、连续性和总价;不得只锁其中一个小时后宣称任务成功。
|
||||
- 同一球场存在 `submitting-uncertain`、`pending-payment` 或 `release-uncertain` 记录时,所有监控任务只能继续读列表,不得发起新的下单请求。自动预定只能消费本轮新出现的可订时段,每个任务每轮最多选择一个时段。
|
||||
- 每个监控任务的累计统计、近 30 天每日汇总和最近 240 条运行日志随任务持久化;删除任务时一并删除。日志禁止记录访客凭证、预约人信息、完整响应或完整请求头。
|
||||
- 10 秒轮询遥测先更新主进程内存,每 5 分钟按所有脏任务批量写入;提醒、暂停、恢复、到期等关键节点立即持久化,正常退出必须等待最终批量刷新,禁止每任务每轮重写整个 JSON。
|
||||
- `src/main/adapters/<court-id>/`:单个球场的接口与预约流程实现。
|
||||
- `src/preload/`:仅暴露经过白名单审核的类型安全 IPC。
|
||||
- `src/renderer/`:React UI,不可使用 Node.js API,不可持有第三方密钥。
|
||||
@@ -42,7 +48,7 @@
|
||||
- 每球场配置以 `courtId` 隔离;标识符在共享模型和持久化文件中使用字符串,实际请求前再按接口契约安全转换。
|
||||
- 预约人昵称和手机号仅可按产品明确要求存在于当次时段查询的内存结果中;不得写日志、落盘、缓存或用于预约以外的用途。
|
||||
- 外部链接只能通过主进程白名单打开;页面不得任意导航或创建窗口。
|
||||
- 写操作前必须在主进程重新验证实时可用性和价格;UI 必须二次确认。不得用真实接口做自动化下单或取消测试。
|
||||
- 写操作前必须在主进程重新验证实时可用性和价格;手动下单必须 UI 二次确认,自动预定必须在任务开关处获得一次明确授权。不得用真实接口做自动化下单或取消测试。
|
||||
|
||||
## 完成标准
|
||||
|
||||
|
||||
Reference in New Issue
Block a user