64 lines
1.7 KiB
Markdown
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` 核心逻辑
|
|
- 修改数据库表结构
|
|
- 修改前端代码
|