feat: add application queue priority routing

This commit is contained in:
hectorzhao
2026-07-07 14:49:10 +08:00
parent 72f2c010ce
commit 4c8f7dd73f
17 changed files with 392 additions and 46 deletions
+4 -2
View File
@@ -16,7 +16,7 @@
- 当前重点:
- 风控规则评估:最大号码数、重复率、非法号码率、黑名单率、模板变量异常、直接拒绝、进入人工审核。
- 计费:费用预估、余额检查、冻结、提交 accepted 扣费、失败回执退款、短信计费记录、应用级客户费率、重复回调幂等。
- 发送链路:批量任务创建、手机号拆分、发送入队、运营商前缀正则分流、手机号段归属地识别、应用运营商通道组路由、省网/全国路由、submit result 更新、receipt 更新、迟到旧回执不覆盖最终成功、失败补发、补发停止条件、uplink 记录、72 小时未知转超时。
- 发送链路:批量任务创建、手机号拆分、按应用队列等级分流普通/优先队列、优先队列插队消费、普通队列防饿死、运营商前缀正则分流、手机号段归属地识别、应用运营商通道组路由、省网/全国路由、submit result 更新、receipt 更新、迟到旧回执不覆盖最终成功、失败补发、补发停止条件、uplink 记录、72 小时未知转超时。
- 通道与报备:通道创建、通道发送地区、三网通道通配、单运营商通道组、通道组明细 carrier 参与发送、省份与通道发送地区一致性、全国通道优先级唯一、企业应用通道组保存校验、禁止单通道发送规则、最终选中通道签名报备校验、签名报备任务、导出、回执导入、签名状态同步。
- 查询统计:发送链路 trace、对账 reconciliation、dashboard/statistics。
- GatewaySEQID/MSGID 追踪、重连、health、gocmpp submit/resp 模拟器。
@@ -26,7 +26,7 @@
- 单元/轻集成测试可以使用 mock Prisma/BullMQ/Redis 验证 Service 编排和异常分支,但这只代表代码级测试通过。
- 系统功能集成测试必须补充真实服务闭环:
- Prisma/PostgreSQL test database 集成测试。
- BullMQ + Redis 队列消费集成测试。
- BullMQ + Redis 队列消费集成测试,覆盖普通队列、优先队列、混合积压、优先队列插队和普通队列恢复
- MinIO 预签名上传集成测试。
- 前端页面调用真实 API 的浏览器 smoke。
@@ -35,6 +35,7 @@
- 继续复用 `docs/contracts/gateway-queue-messages.schema.json`
- 继续使用 `tools/spike/validate-gateway-queue-contract.mjs` 校验 SubmitCommand、SubmitResult、ReceiptEvent、UplinkEvent 示例。
- 队列消息变更必须先改 schema 和示例,再改 NestJS/Gateway 实现。
- 若队列消息新增 queuePriority、priority 或队列名称字段,必须同步更新契约 schema、示例、NestJS 生产者、Send Worker 消费者和 Gateway 消费入口。
### 2.4 端到端 Smoke
@@ -52,6 +53,7 @@
- 继续复用 `npm run spike:bullmq`
- 验证 15000 条消息、并发 500 的入队和端到端队列链路吞吐。
- 混合优先级压测必须额外验证:普通队列已有积压时,新进入的优先队列消息能更早被消费;优先队列持续进入时,普通队列仍能按配置恢复消费,不出现永久饥饿。
- 性能 smoke 只验证第一版“可稳定入队并调度 500 条短信/秒”的链路能力,不替代生产压测。
## 3. 执行命令