# TODO - 优化抖音定时任务 ## 🔧 部署待办事项 ### 1. 重启服务 (必须) ```bash # 方式 1: 使用 systemctl systemctl restart bindbox-game # 方式 2: 手动重启 pkill bindbox-game ./bindbox-game & ``` ### 2. 验证定时任务 (必须) ```bash # 查看日志确认定时任务启动 tail -f logs/app.log | grep "定时" # 预期看到: # [抖店定时同步] 定时任务已启动 直播奖品=每5分钟 订单同步=每1小时 退款同步=每2小时 ``` ### 3. 测试管理接口 (可选) ```bash # 获取管理员 token (替换为实际 token) TOKEN="your_admin_token_here" # 测试手动全量同步 curl -X POST http://localhost:8080/api/admin/douyin/sync-all \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{"duration_hours": 1}' # 预期返回: # {"message":"全量同步成功 (同步范围: 1小时)","debug_info":"..."} ``` --- ## ⚙️ 配置说明 ### 无需额外配置 本次优化**不需要**修改任何配置文件,代码中已硬编码定时频率: - 直播奖品: 5 分钟 - 订单同步: 1 小时 - 退款同步: 2 小时 ### 如需调整频率 (可选) 如果需要调整定时频率,修改 `internal/service/douyin/scheduler.go`: ```go // 第 28-30 行 ticker5min := time.NewTicker(5 * time.Minute) // 改为其他值 ticker1h := time.NewTicker(1 * time.Hour) // 改为其他值 ticker2h := time.NewTicker(2 * time.Hour) // 改为其他值 ``` --- ## 📊 监控建议 ### 1. 观察日志 (推荐) ```bash # 持续观察定时任务执行情况 tail -f logs/app.log | grep -E "定时|同步|发放" ``` ### 2. 监控指标 (可选) 如果有监控系统,建议监控: - 抖音 API 调用次数 (应降低 80%+) - 定时任务执行时长 - 直播奖品发放延迟 - 订单同步延迟 --- ## ❓ 常见问题 ### Q1: 订单同步延迟会影响用户吗? **A**: 不会。用户在前端点击"刷新待抽奖订单"时会触发按需同步 (5 秒限流),体验不受影响。 ### Q2: 如果需要紧急同步怎么办? **A**: 管理员可以通过管理后台手动触发同步: - POST /api/admin/douyin/sync-all (全量同步) - POST /api/admin/douyin/sync-refund (退款同步) - POST /api/admin/douyin/grant-prizes (发放奖品) ### Q3: 如何回滚到优化前? **A**: 执行以下命令: ```bash git checkout HEAD~1 internal/service/douyin/scheduler.go git checkout HEAD~1 internal/api/admin/douyin_orders_admin.go git checkout HEAD~1 internal/router/router.go go build . systemctl restart bindbox-game ``` ### Q4: 首次启动会很慢吗? **A**: 首次启动会同步最近 48 小时的订单,可能需要 1-3 分钟。后续启动正常。 --- ## ✅ 验收清单 部署完成后,请确认以下项目: - [ ] 服务已重启 - [ ] 日志显示 "定时任务已启动" - [ ] 每 5 分钟看到 "发放直播奖品" 日志 - [ ] 每 1 小时看到 "全量订单同步" 日志 - [ ] 管理接口可正常调用 (可选测试) - [ ] 前端刷新订单功能正常 --- ## 📞 支持 如有问题,请查看: 1. [验收文档](./ACCEPTANCE_优化抖音定时任务.md) - 详细使用指南 2. [架构设计](./DESIGN_优化抖音定时任务.md) - 技术细节 3. [项目总结](./FINAL_优化抖音定时任务.md) - 完整说明