bindbox-game/docs/优化抖音定时任务/TODO_优化抖音定时任务.md

3.2 KiB
Executable File

TODO - 优化抖音定时任务

🔧 部署待办事项

1. 重启服务 (必须)

# 方式 1: 使用 systemctl
systemctl restart bindbox-game

# 方式 2: 手动重启
pkill bindbox-game
./bindbox-game &

2. 验证定时任务 (必须)

# 查看日志确认定时任务启动
tail -f logs/app.log | grep "定时"

# 预期看到:
# [抖店定时同步] 定时任务已启动 直播奖品=每5分钟 订单同步=每1小时 退款同步=每2小时

3. 测试管理接口 (可选)

# 获取管理员 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:

// 第 28-30 行
ticker5min := time.NewTicker(5 * time.Minute)   // 改为其他值
ticker1h := time.NewTicker(1 * time.Hour)       // 改为其他值
ticker2h := time.NewTicker(2 * time.Hour)       // 改为其他值

📊 监控建议

1. 观察日志 (推荐)

# 持续观察定时任务执行情况
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: 执行以下命令:

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. 验收文档 - 详细使用指南
  2. 架构设计 - 技术细节
  3. 项目总结 - 完整说明