1.7 KiB
1.7 KiB
CONSENSUS - 优化抖音定时任务
明确需求描述
优化抖音定时任务,采用混合模式 (定时 + 按需 + 手动) 降低 API 调用频率,解决代理 IP 慢的问题。
技术实现方案
1. 定时任务频率调整
修改文件: internal/service/douyin/scheduler.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接口 - 复用现有权限中间件
- 保持代码风格一致
验收标准
- 定时任务改为多定时器模式
- API 调用频率从每 5 分钟降低到每 1-2 小时
- 管理后台 3 个接口可正常调用
- 编译通过,无语法错误
- 直播奖品发放延迟 ≤ 5 分钟
任务边界
包含:
- 修改
scheduler.go定时逻辑 - 新增
douyin_admin.go管理接口 - 更新路由注册
不包含:
- 修改
order_sync.go核心逻辑 - 修改数据库表结构
- 修改前端代码