bindbox-game/docs/优化抖音定时任务/CONSENSUS_优化抖音定时任务.md
2026-02-18 23:23:34 +08:00

64 lines
1.7 KiB
Markdown

# CONSENSUS - 优化抖音定时任务
## 明确需求描述
优化抖音定时任务,采用混合模式 (定时 + 按需 + 手动) 降低 API 调用频率,解决代理 IP 慢的问题。
## 技术实现方案
### 1. 定时任务频率调整
**修改文件**: `internal/service/douyin/scheduler.go`
**调整策略**:
```go
// 原逻辑: 单一定时器 (每 5 分钟)
time.Sleep(5 * time.Minute)
// 新逻辑: 多定时器分频执行
ticker5min := time.NewTicker(5 * time.Minute) // 直播奖品
ticker1h := time.NewTicker(1 * time.Hour) // 全量同步
ticker2h := time.NewTicker(2 * time.Hour) // 退款同步
```
**移除逻辑**:
- 删除 `FetchAndSyncOrders` 调用 (功能被 SyncAllOrders 覆盖)
### 2. 管理后台手动触发接口
**新增文件**: `internal/api/admin/douyin_admin.go`
**接口列表**:
```
POST /api/admin/douyin/sync-all
POST /api/admin/douyin/sync-refund
POST /api/admin/douyin/grant-prizes
```
**权限控制**: 复用现有 admin 中间件
### 3. 前端按需同步
**现有接口**: `GET /api/public/livestream/{access_code}/pending-orders`
- 已实现 5 秒限流
- 无需修改
## 技术约束
- 使用现有 `douyin.Service` 接口
- 复用现有权限中间件
- 保持代码风格一致
## 验收标准
1. 定时任务改为多定时器模式
2. API 调用频率从每 5 分钟降低到每 1-2 小时
3. 管理后台 3 个接口可正常调用
4. 编译通过,无语法错误
5. 直播奖品发放延迟 ≤ 5 分钟
## 任务边界
**包含**:
- 修改 `scheduler.go` 定时逻辑
- 新增 `douyin_admin.go` 管理接口
- 更新路由注册
**不包含**:
- 修改 `order_sync.go` 核心逻辑
- 修改数据库表结构
- 修改前端代码