122 lines
3.2 KiB
Markdown
122 lines
3.2 KiB
Markdown
# 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) - 完整说明
|