f076dcd9b23a2c74d2fb99238c2307d214acaed9
接 16974d0(I3)。Task8 核实:限流类自动重发途经 MsgPushGuardChain 的 Quota/RateLimitChecker,per-receiver 日限远小于 ~360 次/12h,会被守卫置 rate_limited/quota_exceeded 终态 → 队列记录被删 → 无限重试静默失效。 批次1/2/I3 修对了重试编排,但不豁免守卫则功能在生产仍发不出去。 方案 A+B(用户选:完全豁免 AUTO_RETRY): - A:checkAll 加 RetrySourceEnum 参,AUTO_RETRY 跳过 quota+ratelimit (blacklist 仍执行);processSendMsg 透传。重发节奏由 120s 间隔 + 12h 兜底天然封顶,无需配额墙再约束。 - B:applySendResult 加 retrySource 参,仅首发(null)累加配额/频率计数; 重发(AUTO/MANUAL)是同一条消息再投,不重复扣额。 - MANUAL_RETRY 仍受守卫检查(只豁免 AUTO)。 checkAll 全仓仅 1 调用点;applySendResult 为 impl 内部方法、2 处 this 调用, 接口签名不变。Spring 编排+Redis 副作用无 H2 脚手架,靠编译+diff+人工冒烟 验证(spec §8):RetryDecisionLogicTest 仍 6/6 绿,全模块编译通过。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Description
Languages
Java
100%