Files
junhong_cmp_fiber/openspec/changes/add-carrier-channel-traffic-thresholds/proposal.md
break 15bbb953db
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 13m29s
fix(通道流量阈值): AUG26-011 修复失败/未知结果收敛、锁定 carrier 缺失出路与审计回归
2026-09-16 16:41:25 +08:00

33 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## Scope
- 迭代编号:`AUG26-011`
## Why
运营商通道需按其计费周期流量自动停复机,不能与套餐预警混用。
## What Changes
- 新增通道阈值、周期和停机锁。
- 达量可靠停机,新周期按套餐和其他锁条件复机。
## Capabilities
### New Capabilities
- `carrier-channel-traffic-threshold`: 通道流量阈值控制。
### Modified Capabilities
- `package-lifecycle`: 「套餐状态流转」新增一条复机前置条件——载体在当前计费周期内持有运营商通道流量阈值停机锁时,支付后异步自动复机与套餐激活/重置复机 MUST NOT 调用上游复机流程,并保留该锁(以 `specs/package-lifecycle/spec.md` 的 MODIFIED delta 建模;主 Spec 同步在归档时进行)。
## Impact
影响通道、卡状态、可靠任务、外部运营商调用和 Schema。具体落点
- `tb_carrier` 扩列:`traffic_threshold_enabled``traffic_threshold_value``traffic_threshold_unit`(周期起始日复用既有 `data_reset_day`,不新增列)。
- 新增周期阈值停机锁表:`(carrier_id, card_id, period_start)` 唯一键、任务状态组、提交认领字段、`anomaly_flag`;成对迁移。
- 新增 2 个 Outbox 事件类型停机、复机各一worker 消费。
- 新增 2 个 cron 与 worker 装配点:周期处理(解锁/条件复机)、恢复扫描(只查询回填),均 `@every 1m` + `asynq.Unique(10m)`,照 `TaskTypeRefundChannelRecovery` 形态注册。
- 新增停因常量 `channel_threshold`4 个复机入口(`resumeSingleCard``ManualStartCard``ForceStartCard``StartMachineSeparatedCard`)新增持锁拒绝,因而改变了既有套餐生命周期自动复机路径的可观察行为(见 Modified Capabilities
- 停机/复机调用明确失败或结果未知的子任务不退出收敛链路:恢复扫描的未决集合为 `{submitted, unknown, failed}`(只读状态查询,绝不重试外呼),超 30 分钟仍不可确认转人工;锁行引用的运营商缺失或重置日非法时,周期处理按跨期语义解锁并标记异常转人工。
- carrier 管理接口字段级守卫与响应过滤(阈值字段仅平台账号可见可写)。