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