Files
邹进 42e881576d
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m33s
feat: 卡网关按运营商账户限流并记录停复机调用
- 新增网关限流:按本系统运营商账户(卡 carrier_id)→ 限流组 → 操作限制每秒请求数,每次 HTTP 尝试计量,默认限流、仅后台人工点击/通道阈值/自动续费/手动刷新豁免;支持只统计与拦截两种模式,默认只统计
- Asynq 遇限流不计失败、固定短延迟重试;轮询任务与停复机业务重试遇限流短延迟重排
- 停机、复机不再使用网关内部重试,只发一次请求
- 网关返回结构化错误;新增上游错误分类规则表与测试接口
- 新增按月分区的停复机记录表:系统自动停复机只写记录,不再写统一审计与集成日志;普通轮询查询不再写集成日志
- 新增限流组、错误分类、停复机记录、按账户调用统计与枚举后台接口
- 迁移 000243~000246;同步 OpenSpec 提案(含后续 6 个 change)与技术方案、工程约束
2026-10-24 15:06:41 +09:00

3.8 KiB
Raw Permalink Blame History

MODIFIED Requirements

Requirement: 暂停轮询的卡不自动停复机

卡或其绑定设备暂停轮询的,系统 SHALL NOT 对该卡发起由检查结果或周期评估触发的自动停复机(流量用完、实名不满足、卡状态检查后的停复机、套餐步骤评估),也 SHALL NOT 发起套餐激活、套餐重置、充值、排队激活、实名激活、运营商账户实名管控修改等入口触发的自动复机;人工停机与人工复机照常执行。套餐失效类停机 MUST 照常执行,不看暂停轮询:套餐到期且资产无其他有效套餐、退款后资产无可用主套餐时,系统按"套餐到期"或"退款"场景请求评估并停机;该停机对暂停轮询的卡只触发一次,之后由停复机指令按失败处理重试,请求写入失败或缓存数据丢失时不做补偿扫描。请求评估与停复机指令 MUST 携带场景,执行前重新判断沿用同一场景。网关扩展状态为风险停机或已销户的卡 MUST 关闭该卡自身轮询,不论是否绑定设备:查卡状态返回该扩展状态时关闭;停复机调用直接返回命中"自动关闭轮询"规则的终态时,同样关闭并回写网关扩展状态。关闭只作用于该卡,MUST NOT 级联关闭设备与设备下其他卡。机卡分离停机等其他运营商异常状态 MUST NOT 自动关闭轮询,由人工判断。未暂停轮询的卡,不论运营商扩展状态如何,均按停机与复机条件处理,上游拒绝复机时按现有失败处理。

Scenario: 暂停轮询的卡充值后

  • WHEN 已被人工暂停轮询的停机卡充值并激活套餐
  • THEN 系统不自动复机;人工复机照常可用

Scenario: 暂停轮询的卡套餐到期

  • WHEN 暂停轮询的开机卡套餐到期且无其他有效套餐
  • THEN 系统以"套餐到期"场景生成停机指令并执行

Scenario: 暂停轮询的卡退款后

  • WHEN 暂停轮询的开机卡退款后资产无可用主套餐
  • THEN 系统以"退款"场景生成停机指令并执行,只触发一次

Scenario: 暂停轮询的卡流量用完

  • WHEN 暂停轮询的卡流量用完
  • THEN 系统不自动停机

Scenario: 恢复轮询后

  • WHEN 维护者为该卡恢复轮询
  • THEN 下一次评估起系统按停机与复机条件正常处理

Scenario: 设备卡出现机卡分离停机

  • WHEN 设备下的卡运营商扩展状态为机卡分离停机且未被暂停轮询
  • THEN 系统不自动暂停轮询,按停机与复机条件处理

Scenario: 设备下的卡被销户

  • WHEN 查卡状态返回绑定设备的某张卡扩展状态为已销户
  • THEN 系统关闭该卡轮询,设备与设备下其他卡的轮询不变

Scenario: 复机返回风险停机

  • WHEN 复机调用返回"当前卡为风险停机状态,仅支持风险复机"且该规则标记自动关闭轮询
  • THEN 系统不重试,关闭该卡轮询并回写扩展状态为风险停机

ADDED Requirements

Requirement: 套餐到期即停

系统 SHALL 在套餐到期失效处理时,若该资产已无其他有效主套餐,直接以"套餐到期"场景请求停复机评估:独立卡当场判断并生成停机指令,设备请求设备维度判断并记录该场景;MUST NOT 依赖卡任务的套餐步骤发现过期。存在待生效的后续主套餐时,按现有到期接续流程先激活后续套餐,不发起停机。

Scenario: 独立卡到期无后续套餐

  • WHEN 独立卡主套餐到期且无后续主套餐
  • THEN 系统立即生成 no_package 停机指令,不等待下一次套餐检查

Scenario: 到期有后续套餐

  • WHEN 主套餐到期且存在待生效的后续主套餐
  • THEN 系统按接续流程激活后续套餐,不生成停机指令