Commit Graph

45 Commits

Author SHA1 Message Date
cbfee6b156 fix(retry): 修复批次1+2 review 查出的两个 blocker(I1 撤唯一约束 / I2 SENDING 泄漏)
99c8bc3 多代理深度 code review,治本两个 blocker:

I1 软删除 × 唯一约束 → 静默丢消息(撤批次2):
- MessageRetryQueueDO 走 @TableLogic 逻辑删除,deleteByMessageIds 实为
  UPDATE deleted=1,物理行残留;批次2 的 uk_pmrq_message_id 只盖 message_id,
  与残留行冲突 → 同一 message_id 再入队抛 DuplicateKeyException → catch 再
  selectOne 仍 null(软删行不可见)→ concurrent==null 静默 return → 消息永久丢失。
- 撤回:删迁移 SQL、移除 DuplicateKeyException catch 与 import,回到纯
  selectOne→insert/update;applyRetryUpdate(含批次1 限流逻辑)保留为单点调用。

I2 SENDING 行泄漏 + 周期空转(最小治本):
- processSingleRetry 的 else 把"保留中间态"白名单误用在重认领路径;能被重认领
  说明 120s 租约已过期、20s 回执窗口早过,SENDING/PENDING 属卡住却被保留 →
  永不删除/推进、到不了 12h 兜底、周期空转。改前的无条件 delete 会自愈。
- 改回 else { delete }(重认领即清理);删死代码 isTerminalState / INTERMEDIATE_STATES;
  保留 finalizeRetryLease 的 SENDING→return(发完即时窗口保住行,批次1 修 R1 关键)。

测试:RetryDecisionLogicTest 删 isTerminalState 两例、清死 import,余 4 例全绿;
全模块重编译通过。设计见 docs/superpowers/specs/2026-06-19-sms-retry-blockers-fix-design.md。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 17:04:47 +08:00
99c8bc3636 feat(retry): SMS限流类无限重试治本(批次1核心 + 批次2唯一约束)
批次1 治本核心(MessageRetryQueueServiceImpl):
- 新增常量与纯函数 helper:isRateLimit / isRateLimitExhausted / isTerminalState,
  及 RetryDecisionLogicTest 纯JUnit5单测(6例)
- A1/A2 删除时机:sending 中间态不再误删,仅终态才删 —— 根治 firstFailTime/retryCount
  被重置的 R1 根因(回执回来命中既有记录而非走首次入队)
- B1/B2 限流分流:限流类(errorCode=RATE_LIMIT)按"首次失败起满12h"时间兜底、
  固定120s间隔;普通类维持次数上限与阶梯间隔,行为不变

批次2 唯一约束:
- 新增 push_message_retry_queue.message_id 唯一约束迁移SQL(uk_pmrq_message_id,含去重前置查)
- saveOrUpdateRetryMessage 抽 applyRetryUpdate + 捕获 DuplicateKeyException 退化更新(MySQL安全)

说明:批次3(守卫链对限流类重发的豁免)经核实为"功能真正生效的必要条件",
findings 见 docs/push模块/配额墙核实-findings-2026-06-19.md,留待下轮。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 16:04:34 +08:00
caozehui
c2bbdd865d 系统凭证调整 2026-05-13 09:47:54 +08:00
caozehui
e9f66ca0b2 微调 2026-05-12 16:02:11 +08:00
caozehui
8f86c563f0 微调 2026-05-12 11:22:26 +08:00
caozehui
db15799440 微调 2026-05-12 08:42:07 +08:00
caozehui
c4b56a727c 微调 2026-05-11 15:49:05 +08:00
caozehui
fe26aa8670 微调 2026-05-11 13:57:02 +08:00
caozehui
9343799290 引入阿里云邮件推送 2026-05-11 10:57:40 +08:00
caozehui
9be824777b 开放 生成系统凭证 接口 2026-04-20 19:55:21 +08:00
caozehui
8c2f5a0e17 微调 2026-04-20 11:15:16 +08:00
caozehui
c147ef602f 删除消息重试队列delete字段 2026-04-20 11:13:21 +08:00
caozehui
cb9a75084f 处理Redis认领后,数据库状态还未更新时,触发补招,导致重复补招同一个条记录问题 2026-04-20 08:46:27 +08:00
caozehui
47c00e2bd4 服务提供商启用\禁用逻辑调整,确保只有一个渠道只有一个服务提供商 2026-04-17 16:11:00 +08:00
caozehui
d44f6423e0 微调 2026-04-09 18:31:55 +08:00
caozehui
fc6fc9642b 重试逻辑调整 2026-04-09 13:39:10 +08:00
caozehui
0a8627b440 第三方调用异常与事务边界、消息重试队列Redis与数据定时同步任务、重试次数闭环不稳定 2026-04-07 08:40:51 +08:00
1bf5436f0c 1、微调 2026-04-01 20:33:59 +08:00
8c43ec408d 1、id自增调整为雪花模式 2026-03-31 20:57:52 +08:00
e78565ea5a 1、结构化调整; 2026-03-31 19:58:48 +08:00
ebdbdbeb41 1、结构调整
2、抽象工厂优化
2026-03-31 19:35:21 +08:00
caozehui
87757b352c 配额 2026-03-30 13:58:03 +08:00
caozehui
be7c1b7b26 系统配额、redis缓存各个系统&渠道发送消息的数量 2026-03-23 15:39:10 +08:00
caozehui
6934e19030 微调 2026-03-16 11:17:11 +08:00
caozehui
5feae9e403 发送频率限制数据访问层、服务层 2026-03-16 10:40:42 +08:00
caozehui
2fa61b350c 黑名单数据访问层、服务层 2026-03-13 08:49:45 +08:00
caozehui
e281226069 完善消息错误信息、编写消息重试队列 2026-03-12 09:13:43 +08:00
caozehui
6a0bb5f23e 修改消息的状态 2026-03-10 10:46:44 +08:00
caozehui
478f8a4c3d 电信获取下行信息完善、补充消息重试队列、消息重试任务 2026-03-10 10:35:42 +08:00
caozehui
8806ba7afa 获取下行状态 2026-03-06 08:42:19 +08:00
caozehui
b048ecfc53 微调 2026-03-04 20:37:48 +08:00
caozehui
cfa3f1759c Merge remote-tracking branch 'origin/main' 2026-03-04 19:30:44 +08:00
01df90000b 添加配置 2026-03-04 19:29:53 +08:00
caozehui
464b37f641 Merge branch 'dev'
# Conflicts:
#	msgpush-module-push/msgpush-module-push-server/src/main/resources/application.yaml
2026-03-04 19:21:57 +08:00
caozehui
9c5d4b6d11 微调 2026-03-04 19:16:53 +08:00
1fd0cb1f45 微调 2026-03-04 13:18:49 +08:00
caozehui
ceb065ec97 微调 2026-03-04 09:13:23 +08:00
caozehui
10febe21f9 微调 2026-03-03 10:39:41 +08:00
caozehui
8b4a7967cc 结构调整 2026-03-03 10:33:03 +08:00
caozehui
c7f3687bf8 短信推送demo 2026-02-26 15:45:19 +08:00
caozehui
fac4a39214 微调 2026-02-11 16:17:13 +08:00
caozehui
1219b30f43 微调 2026-02-10 15:27:28 +08:00
3f65a55c15 清除多租户功能 2026-02-04 15:41:21 +08:00
a2203e4f40 数据库调整 2026-02-03 10:31:09 +08:00
b4951cb721 初始化 2026-02-03 10:18:40 +08:00