邮件标题:20260908-技术评审-营销活动中心-盘点失败消息重投方案
邮件正文:
晓娜、建新:
已完成针对【盘点失败消息重投方案(rocket_error_log)】的技术评审,现将评审结论、风险判断及后续执行安排同步如下,便于各方对齐认知并落实执行。
项目名称: 营销活动中心
评审时间: 2026/09/08
参与评审人: 李明非、郝梓斐、余勇军(方案汇报)、张建利、吴南林、王建朝、马奇、刘晓娜、吕杰
评审结果: 有条件通过(需先完成消息队列导入可行性验证与影响面确认后再执行)
一、技术方案背景
- 业务场景:9 月初起盘点业务量激增、SR 库资源不足,盘点消费链路部分查询/调用超时抛异常,异常被外层兜底 catch 吞掉且未做自动重投,导致对应盘点明细未写入报表库(9/1 至今约 18000 余条),小程序/APP 查询的盘点数量与报表导出数量不一致;失败消息体仅以日志文本形态留存,需离线捞取后重新回放补齐。
二、技术方案要点
- 整体流程:下载腾讯云失败日志 → 离线解析逐行截取完整消息体 JSON 并校验首尾大括号(避免截断写入残缺数据)→ 按 500 条一批写入 Mongo 集合
rocket_error_log→ 定时任务(XXL-Job)加分布式锁、按_id游标分批重投到 RocketMQsip-mac-freshness-inventory→ 消费端重新走正常链路落报表库,发送成功后删除记录;落库前按check_id + trace_code + take_stock_day去重,已入库的追溯码剔除后再处理,保证重放不重复入库。
三、决议事项
- 优先在测试环境验证消息队列导入方式(云平台侧已开测试环境导入权限),若可行则本次不发版、不启用定时重投代码,后续同类补数统一走导入方式,由李明非负责。
- 执行前确认 SR 库资源已恢复;执行后输出明确结果——总条数(约 18000 余条)、重投成功条数、失败条数。方案实施后通知中台盘点抽数侧重投完成后需重新抽数,避免中台侧数据未同步更新,由余勇军负责。
- 统计 9/1–9/8 期间门店/经销商属性发生变更的记录在本批数据中的占比与影响(窗口规则判定可能存在差异),留存记录备查,由余勇军负责。
四、风险提示
- 消息队列导入方式的量级、QPS 与通道占用尚未确认,若不可行或受限,需回退到代码发版重投路径,方案执行方式存在变更可能。
- 9/1–9/8 期间门店/经销商状态已发生变更的数据,重投后窗口规则判定结果可能与当时不一致,存在少量数据结果偏差。