server/
核验本地当前数据库 syb_sync_run 共 121 条记录:
syb_sync_run
failed
interrupted
succeeded
90 条失败按脱敏错误分类:
/am/stock/list
最近 48 小时同样以列表超时和当天快照漂移为主。典型超时发生在固定 pageSize=20 下的第 38、43、56 页,分别已读取约 740、840、1100 条后失败。
pageSize=20
server/app/goauto/sybimport/sync.go
loadDailyList
listTotal
server/app/goauto/sybclient/client.go
list
detail/listByStock
docs/12-syb-erp-interface.md
(order_code, detail_id)
max_matches
pageSize
pageSize=20/50/100/200
data.total == len(list)
go test ./app/goauto/sybclient/... ./app/goauto/sybimport/...
go test ./app/goauto/...
sybclient/client.go
SYB-ERP-Interface-Contract
Business-Rules-and-Glossary
python dev_scripts/harness.py sync
sync --check
待实施。
提交:7afe5ae fix(#145): stabilize SYB daily pagination,已推送 main。
7afe5ae fix(#145): stabilize SYB daily pagination
main
稳定历史日 2026-08-28,共 753 张,不读取/输出订单、收件人或地址内容:
50/100/200 均通过完整性验证;选择 50,避免直接采用最大值。
go test -count=1 ./app/goauto/sybclient/... ./app/goauto/sybimport/... ./config/...
go test -count=1 ./app/goauto/... ./config/...
go build ./cmd/api
git diff --check
线上 SYB-ERP-Interface-Contract 已更新并回读,记录实验结果与默认 50;本地镜像已提交。harness.py sync 仍在远端读取阶段不退出,已停止;python dev_scripts/harness.py check --strict 通过。
harness.py sync
python dev_scripts/harness.py check --strict
24~48 小时线上失败率对比属于部署后观察窗口,当前无法提前宣称完成;需按工单基线继续统计列表超时、快照漂移、DNS、OCR/登录与中断。
用户于 2026-08-29 明确确认本工单通过验收。验收结论已记录,现关闭工单。没有新的长期事实变化,本次不重复同步 Wiki。
No dependencies set.
The note is not visible to the blocked user.
所属与来源
server/、shared-docs。当前证据与根因
核验本地当前数据库
syb_sync_run共 121 条记录:failedinterruptedsucceeded90 条失败按脱敏错误分类:
/am/stock/list高页码请求连续 3 次、每次 60 秒超时最近 48 小时同样以列表超时和当天快照漂移为主。典型超时发生在固定
pageSize=20下的第 38、43、56 页,分别已读取约 740、840、1100 条后失败。代码事实
server/app/goauto/sybimport/sync.go的loadDailyList固定按初始listTotal和 20 条分页,任一页失败即终止;分页后再次读取总数并要求完全一致。server/app/goauto/sybclient/client.go已只对listTotal、list、detail/listByStock三类只读请求做最多 3 次重试,退避 1 秒、2 秒,单次 HTTP 总超时 60 秒。继续增加普通请求重试不能解决稳定的高 offset 超时。docs/12-syb-erp-interface.md已批准“今天快照漂移最多重拉 3 次;历史日期不重复拉取;第三次仍漂移时可保存最后一次合法唯一 ID 的完整明细,但运行保持失败”的长期契约,当前代码尚未实现。(order_code, detail_id)幂等 upsert;同步失败保留已写数据是既有正确行为。目标
实施方案
一、今天快照漂移恢复
max_matches限制;网络错误、非法 ID、重复 ID、明细缺失、明细出现未请求 ID、空商品明细、业务失败和会话失效不得使用快照放宽。failed,不得伪装成功或推进任何完整覆盖事实;二、分页容量只读实验
pageSize,默认值切换前先完成真实只读实验。pageSize=20/50/100/200:listTotal结果一致;data.total == len(list);listTotal;三、验证后观察
非目标
syb_sync_run记录。安全边界
验收标准
failed,错误提示准确。max_matches在每次尝试中继续生效。pageSize=20/50/100/200真实只读实验有可复核的总数、唯一 ID、页数和耗时结果。pageSize只使用通过完整性验证的值;无更大稳定值时保持 20。(order_code, detail_id)幂等行为不回退。验证方式
go test ./app/goauto/sybclient/... ./app/goauto/sybimport/...go test ./app/goauto/...syb_sync_run汇总状态和脱敏错误类别,比较实施前基线:121 条中失败 90、成功 20、中断 11;失败中列表超时 70、快照漂移 18、DNS 2。依赖与并行
server/app/goauto/sybimport/sync.go、sybclient/client.go或 SYB 接口契约的工单并行实施。风险与回退
failed,错误信息明确,不推进完整覆盖事实。pageSize=20并关闭今天快照重试即可;已有 SYB 商品和同步记录不需回滚。文档影响
SYB-ERP-Interface-Contract:记录真实验证后的稳定pageSize及今天快照恢复的实际实现边界。Business-Rules-and-Glossary;实施时核对并在工单说明。python dev_scripts/harness.py sync和一次sync --check,提交镜像并把页面与 revision 回写本工单。状态
待实施。
实施完成,待验收
提交:
7afe5ae fix(#145): stabilize SYB daily pagination,已推送main。实现
真实只读分页容量实验
稳定历史日 2026-08-28,共 753 张,不读取/输出订单、收件人或地址内容:
50/100/200 均通过完整性验证;选择 50,避免直接采用最大值。
验证
go test -count=1 ./app/goauto/sybclient/... ./app/goauto/sybimport/... ./config/...:通过。go test -count=1 ./app/goauto/... ./config/...:通过。go build ./cmd/api:通过。git diff --check:通过。文档
线上
SYB-ERP-Interface-Contract已更新并回读,记录实验结果与默认 50;本地镜像已提交。harness.py sync仍在远端读取阶段不退出,已停止;python dev_scripts/harness.py check --strict通过。后续观察
24~48 小时线上失败率对比属于部署后观察窗口,当前无法提前宣称完成;需按工单基线继续统计列表超时、快照漂移、DNS、OCR/登录与中断。
用户于 2026-08-29 明确确认本工单通过验收。验收结论已记录,现关闭工单。没有新的长期事实变化,本次不重复同步 Wiki。