5 Commits
Author SHA1 Message Date
yml2213andCursor a2c4eb59b6 fix(dlc): 发货重试不再改写订单号
代练仓按原单号回查能不能发货。随机后缀查不到,正式单会失败。已有队列时应续发原单,不能换号。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 18:45:08 +08:00
yml2213 46ec3574ae fix(delivery): 治理上游 BFF 单 IP 频控限流与高频轮询雪崩问题
1. 透传分布式客户端 IP(X-Forwarded-For):signProxy 发包自动透传客户端 IP 与订单散列 IP,穿透上游 Nginx 限流层,避免生产服务器单出口 IP(124.223.12.34)被全盘限流(HTTP 429);
2. 频控限流立即避让禁止盲目重试:429 与“请求过于频繁”明确判定为不可重试错误,signProxy 立即返回,消除 8.2 秒长挂与 3 倍放大重试流量;
3. 优化轮询频次与频控冷却:accountBound 未扫码缓存 TTL 提升至 5 秒(削减 60% 轮询 QPS),遭遇频控时拉长缓存避让至 15 秒并由前端平滑等待,给上游充分恢复窗口。
2026-09-18 19:52:53 +08:00
yml2213 af0822949d fix(delivery): 修复 DLC 正式下单重复提交与发货并发冲突问题
1. DLC 正式下单接口禁用传输层自动重试:/public/users/orders 属于非幂等状态变更接口,发生频控或抖动时由上层回调与状态同步接管,严禁盲目原单号重试导致上游抛出“该子订单已处理,请勿重复提交”;
2. 扩充队列防重与已有记录识别:识别上游“该订单已有发货记录/已处理”错误,重新建队时自动追加独立重试单号(_xxxx)并透传至正式下单,避免单号污染冲突;
3. 上游回调支持重试单号兼容:HandleShipNotify 在精准匹配未命中时,自动按下划线前缀匹配主订单号(FO..._xxxx -> FO...),保障重试单回调正常交付;
4. 加强提交并发锁防护:在 35 秒活跃执行窗口内对 in_progress 阶段实行严格并发互斥,避免上游 Webhook 提前推回失败状态导致后续重试穿透产生并发打架;提单失败时显式重置 provider_order_stage 释放锁。
2026-09-18 16:19:37 +08:00
yml2213 40194fa7e5 fix(delivery): 增加绑定缓存防频控、发货队列防重试死锁、终止无效回调重试 2026-09-18 15:26:09 +08:00
yml2213 20bde97d7a fix(delivery): add transient retry, fix queue deadlock, and gate delivery submit by scan auth 2026-09-18 14:49:54 +08:00