# TASK - 优化抖音定时任务 ## 任务依赖图 ```mermaid graph TD T1[Task 1: 修改定时任务调度器] --> T3[Task 3: 测试定时任务] T2[Task 2: 新增管理后台接口] --> T4[Task 4: 测试管理接口] T3 --> T5[Task 5: 集成测试] T4 --> T5 T5 --> T6[Task 6: 文档更新] ``` ## 原子任务列表 ### Task 1: 修改定时任务调度器 **文件**: `internal/service/douyin/scheduler.go` **输入契约**: - 前置依赖: 无 - 输入数据: 现有 scheduler.go 代码 - 环境依赖: Go 1.24 编译环境 **输出契约**: - 输出数据: 修改后的 scheduler.go - 交付物: - 移除 `FetchAndSyncOrders` 调用 - 改为多定时器模式 (5分钟/1小时/2小时) - 验收标准: - 编译通过 - 定时器逻辑正确 - 日志输出清晰 **实现约束**: - 使用 `time.NewTicker` - 使用 `select` 多路复用 - 保持现有日志格式 **依赖关系**: - 后置任务: Task 3 - 并行任务: Task 2 --- ### Task 2: 新增管理后台接口 **文件**: `internal/api/admin/douyin_admin.go` (新建) **输入契约**: - 前置依赖: 无 - 输入数据: `douyin.Service` 接口定义 - 环境依赖: 现有 admin 中间件 **输出契约**: - 输出数据: 新文件 douyin_admin.go - 交付物: - `ManualSyncAll` 接口 - `ManualSyncRefund` 接口 - `ManualGrantPrizes` 接口 - 验收标准: - 编译通过 - 接口返回正确的 JSON - 权限控制生效 **实现约束**: - 复用现有 `core.HandlerFunc` 模式 - 使用现有 admin 权限中间件 - 返回统一的响应格式 **依赖关系**: - 后置任务: Task 4 - 并行任务: Task 1 --- ### Task 3: 测试定时任务 **文件**: 手动测试 **输入契约**: - 前置依赖: Task 1 完成 - 输入数据: 修改后的 scheduler.go - 环境依赖: 运行中的服务 **输出契约**: - 输出数据: 测试报告 - 交付物: - 验证 5 分钟定时器触发 - 验证 1 小时定时器触发 - 验证 2 小时定时器触发 - 验收标准: - 日志显示正确的触发时间 - 各任务独立执行 - 无 panic 或错误 **实现约束**: - 观察日志输出 - 可缩短定时器间隔加速测试 **依赖关系**: - 前置任务: Task 1 - 后置任务: Task 5 --- ### Task 4: 测试管理接口 **文件**: 使用 curl 或 Postman **输入契约**: - 前置依赖: Task 2 完成 - 输入数据: 管理员 token - 环境依赖: 运行中的服务 **输出契约**: - 输出数据: 测试报告 - 交付物: - 验证 `/sync-all` 接口 - 验证 `/sync-refund` 接口 - 验证 `/grant-prizes` 接口 - 验收标准: - 返回正确的 JSON 响应 - 无权限时返回 401/403 - 数据库数据正确更新 **实现约束**: - 使用真实的管理员 token - 检查数据库变更 **依赖关系**: - 前置任务: Task 2 - 后置任务: Task 5 --- ### Task 5: 集成测试 **文件**: 整体功能验证 **输入契约**: - 前置依赖: Task 3, Task 4 完成 - 输入数据: 完整系统 - 环境依赖: 运行中的服务 + 数据库 **输出契约**: - 输出数据: 集成测试报告 - 交付物: - 验证定时任务与手动触发不冲突 - 验证前端按需同步仍正常 - 验证 API 调用频率降低 - 验收标准: - 所有功能正常 - 无数据丢失 - 性能符合预期 **实现约束**: - 运行至少 2 小时观察 - 监控日志和数据库 **依赖关系**: - 前置任务: Task 3, Task 4 - 后置任务: Task 6 --- ### Task 6: 文档更新 **文件**: README 或运维文档 **输入契约**: - 前置依赖: Task 5 完成 - 输入数据: 测试结果 - 环境依赖: 无 **输出契约**: - 输出数据: 更新后的文档 - 交付物: - 定时任务说明 - 管理接口使用指南 - 性能优化效果 - 验收标准: - 文档清晰易懂 - 包含示例代码 **实现约束**: - Markdown 格式 - 包含 API 示例 **依赖关系**: - 前置任务: Task 5 - 后置任务: 无 ## 复杂度评估 | 任务 | 复杂度 | 预计时间 | 风险等级 | |------|--------|---------|---------| | Task 1 | 中 | 15 分钟 | 低 | | Task 2 | 中 | 20 分钟 | 中 | | Task 3 | 低 | 10 分钟 | 低 | | Task 4 | 低 | 10 分钟 | 低 | | Task 5 | 中 | 30 分钟 | 中 | | Task 6 | 低 | 10 分钟 | 低 | **总计**: 约 95 分钟