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

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 接口
  • 复用现有权限中间件
  • 保持代码风格一致

验收标准

  1. 定时任务改为多定时器模式
  2. API 调用频率从每 5 分钟降低到每 1-2 小时
  3. 管理后台 3 个接口可正常调用
  4. 编译通过,无语法错误
  5. 直播奖品发放延迟 ≤ 5 分钟

任务边界

包含:

  • 修改 scheduler.go 定时逻辑
  • 新增 douyin_admin.go 管理接口
  • 更新路由注册

不包含:

  • 修改 order_sync.go 核心逻辑
  • 修改数据库表结构
  • 修改前端代码