All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 13m29s
33 lines
2.2 KiB
Markdown
33 lines
2.2 KiB
Markdown
## 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 管理接口字段级守卫与响应过滤(阈值字段仅平台账号可见可写)。
|