Clone
5
Task-75-SYB-Hourly-Sync
QiuSW edited this page 2026-09-21 16:13:32 +08:00
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#75 SYB 每小时自动同步并精简商品页入口

状态

待用户验收。

目标与范围

  • 服务端每小时自动同步一次 SYB,默认在每小时第 5 分钟触发。
  • 按 Asia/Shanghai 计算日期范围,默认同步当天和前一天。
  • 保留手动导入 API 和同步记录页面,但移除 SYB 商品页的“导入”“同步记录”按钮及导入弹窗。
  • 商品页自动展示最近一次同步状态;同步运行中轮询,完成后刷新商品列表。
  • 不修改 Android Agent,不涉及 PDD 下单或支付。

实现

  • 抽取手动接口与定时任务共用的 StartImport,复用店铺准入、凭据检查、单任务互斥、同步记录和现有导入执行链路。
  • 新增 go-admin DB-aware ExecJob 调用能力,注册 GoAutoSYBHourlySync。
  • 新增幂等迁移 1786701600000_syb_hourly_sync_job.go,首次写入启用的 sys_job;重复迁移及管理员修改后的 Cron/状态不会被覆盖。
  • 上一次同步仍在运行时,本次定时触发跳过;失败不立即重试,等待下一小时。
  • 调度失败不再输出误导性的成功日志。

数据库迁移

用户已明确确认执行本机数据库迁移。迁移首次执行新增 1 个版本,第二次执行新增 0 个、跳过 19 个,确认幂等。验证期间没有启动 Admin API,因此没有触发真实 SYB 同步。

验证

  • go test ./...:通过。
  • go build ./...:通过。
  • pnpm run lint:0 errors;仅上游既有 30 个 warnings。
  • pnpm run build:prod:通过;仅既有 CSS/包体积提示。
  • 相关 Playwright:8 passed。
  • python dev_scripts/harness.py sync --verify:通过。
  • python dev_scripts/harness.py check --strict:通过。
  • git diff --check:通过。

长期文档

Wiki-first 已更新并回读:

  • Architecture-and-Code-Map:ce37cbe86bad24c38c801955e301ff8e90ec86b5
  • Business-Rules-and-Glossary:bb1dea3110c827ee6516f74eb440417a0551f9b8
  • Local-Development-and-Verification:465390216d69d28a642854fd946d2d818a834f9c

对应核心镜像已同步。

提交

  • a2cc9a1 feat(#75): 增加 SYB 每小时自动同步

待验收

  • 重启 Admin API 后确认“定时任务”里存在且启用“SYB 每小时自动同步”。
  • SYB 商品页确认顶部入口已精简、同步状态可显示。
  • 到下一次每小时第 5 分钟后确认产生“系统定时同步”的同步记录并刷新商品。