模块规划总结.md 6.7 KB

Cleanup 模块规划总结

1. 规划概述

根据用户需求"开发一个清理命令,这是测试数据清理,用于清除所有的模块的运行数据(配置数据不清理)",我们设计了一个专门的 Cleanup 模块,而不是简单的清理命令。

1.1 设计理念

  • 专业化:专门的模块处理数据清理需求
  • 配置化:通过后台界面灵活配置清理规则
  • 安全性:多重安全机制确保数据安全
  • 可扩展:易于添加新的清理策略和规则

1.2 核心优势

  • 比单一命令更加灵活和强大
  • 提供可视化的配置和监控界面
  • 支持复杂的清理条件和策略
  • 完整的日志记录和审计功能

2. 模块架构

2.1 整体架构

Cleanup 模块
├── 配置管理系统    # 管理每个表的清理配置
├── 任务管理系统    # 创建和管理清理任务
├── 执行引擎       # 实际执行清理操作
├── 监控系统       # 监控清理进度和状态
├── 日志系统       # 记录清理操作和结果
└── 后台管理界面    # 提供可视化管理界面

2.2 核心组件

2.2.1 数据分类系统

  • USER_DATA (1): 用户运行数据(农场、物品、宠物等)
  • LOG_DATA (2): 日志数据(操作日志、交易日志等)
  • TRANSACTION_DATA (3): 交易数据(订单、交易记录等)
  • CACHE_DATA (4): 缓存数据(临时数据、会话等)
  • CONFIG_DATA (5): 配置数据(默认不清理)

2.2.2 清理策略

  • TRUNCATE: 清空表(最快速)
  • DELETE_ALL: 删除所有记录
  • DELETE_BY_TIME: 按时间条件删除
  • DELETE_BY_USER: 按用户条件删除
  • DELETE_BY_CONDITION: 按自定义条件删除

3. 核心功能

3.1 自动表扫描

  • 扫描所有 kku_ 开头的数据表
  • 自动识别表的模块归属和数据分类
  • 分析表结构特征(时间字段、用户字段等)
  • 生成默认的清理配置建议

3.2 灵活配置管理

  • 为每个表配置具体的清理规则
  • 支持复杂的清理条件(JSON配置)
  • 配置优先级和批处理大小
  • 配置的导入导出和模板化

3.3 安全执行机制

  • 预览模式:显示清理统计,不实际执行
  • 多重确认:危险操作需要多次确认
  • 权限控制:基于角色的操作权限
  • 分批处理:大数据量分批处理避免锁表
  • 进度监控:实时显示清理进度
  • 错误恢复:支持任务中断后的恢复

3.4 完整日志系统

  • 记录每个表的清理操作详情
  • 统计清理前后的数据变化
  • 记录执行时间和性能指标
  • 提供统计报告和可视化分析

4. 数据库设计

4.1 核心数据表

清理配置表 (cleanup_configs)

  • 存储每个表的清理配置
  • 包含清理类型、条件、优先级等
  • 支持启用/禁用控制

清理任务表 (cleanup_tasks)

  • 存储清理任务信息
  • 记录任务状态和执行进度
  • 支持任务的暂停、恢复、取消

清理日志表 (cleanup_logs)

  • 记录每个操作的详细日志
  • 包含执行时间、影响记录数等
  • 支持错误信息记录

表统计信息表 (cleanup_table_stats)

  • 存储表的统计信息
  • 用于清理决策和效果分析
  • 定期更新表的状态信息

5. 使用场景

5.1 测试环境清理

# 扫描所有表并生成配置
php artisan cleanup:scan-tables

# 创建测试数据清理任务
php artisan cleanup:create-task --name="测试数据清理" --type=1

# 预览清理结果
php artisan cleanup:execute 1 --dry-run

# 执行清理
php artisan cleanup:execute 1

5.2 模块数据清理

# 清理特定模块的数据
php artisan cleanup:create-task --name="农场模块清理" --type=2 --modules=Farm

# 清理特定类型的数据
php artisan cleanup:create-task --name="日志清理" --type=3 --categories=2

5.3 后台管理操作

  • 访问 /admin/cleanup/configs 配置清理规则
  • 访问 /admin/cleanup/tasks 管理清理任务
  • 访问 /admin/cleanup/logs 查看清理日志
  • 访问 /admin/cleanup/reports 查看统计报告

6. 安全保障

6.1 多重安全机制

  • 配置验证:验证清理配置的正确性和安全性
  • 权限控制:只有授权用户可以执行清理操作
  • 操作审计:记录所有清理操作的详细信息
  • 备份提醒:清理前提醒用户备份重要数据
  • 紧急停止:支持清理过程的紧急中断

6.2 数据保护策略

  • 配置数据保护:配置表默认不会被清理
  • 关键数据保护:重要用户数据需要特殊配置
  • 关联数据检查:检查外键约束避免数据不一致
  • 分批处理:避免长时间锁表影响业务

7. 性能优化

7.1 处理策略

  • 分批删除:大表采用分批删除策略
  • 索引优化:根据清理条件优化索引使用
  • 并发控制:控制清理任务的并发执行
  • 资源监控:监控内存和CPU使用情况

7.2 执行优化

  • 优先级控制:按优先级顺序执行清理
  • 时间窗口:在业务低峰期执行清理
  • 进度跟踪:实时跟踪清理进度
  • 中断恢复:支持任务中断后的恢复

8. 扩展能力

8.1 清理策略扩展

  • 易于添加新的清理类型
  • 支持自定义清理条件
  • 可配置的清理算法
  • 插件化的清理策略

8.2 数据分类扩展

  • 支持新的数据分类定义
  • 自动识别新的表类型
  • 可配置的分类规则
  • 灵活的分类策略

9. 开发计划

9.1 开发阶段

  1. 基础架构搭建 (1-2天)
  2. 核心功能实现 (3-4天)
  3. 任务管理系统 (2-3天)
  4. 后台管理界面 (2-3天)
  5. 命令行工具 (1-2天)
  6. 测试和优化 (2-3天)

9.2 交付标准

  • 功能完整性验收
  • 性能要求达标
  • 安全机制完善
  • 文档完整清晰

10. 总结

Cleanup 模块的设计充分考虑了用户的实际需求,不仅满足了"清除所有模块运行数据"的基本要求,还提供了:

10.1 超越基本需求的价值

  • 可视化管理:比命令行更友好的管理界面
  • 灵活配置:比固定逻辑更灵活的配置能力
  • 安全保障:比简单删除更安全的操作机制
  • 监控审计:比黑盒操作更透明的执行过程

10.2 长期价值

  • 可维护性:模块化设计便于后续维护和扩展
  • 可重用性:配置化设计支持不同场景的重复使用
  • 可扩展性:开放的架构支持新功能的快速添加
  • 专业性:专门的清理系统比临时方案更专业可靠

这个设计方案将为项目提供一个强大、安全、灵活的数据清理解决方案,不仅满足当前的测试数据清理需求,还为未来的数据管理需求奠定了坚实的基础。