对日志收集系统进行全面梳理,识别并移除真正废弃的代码组件,保持系统整洁。
深入分析了日志收集系统的所有组件:
通过代码搜索和依赖分析,识别出真正废弃的组件:
app/Module/Game/Services/UserLogScheduleService.phpapp/Module/Game/Jobs/CollectUserLogJob.php更新 app/Module/Game/Docs/UserLog.md:
# 系统信息检查 - ✅ 正常
php artisan game:collect-user-logs --info
# 日志收集功能 - ✅ 正常
php artisan game:collect-user-logs --limit=10
# 统计功能 - ✅ 正常
php artisan game:collect-user-logs --statistics
梳理日志收集系统,移除废弃代码
- 删除未使用的UserLogScheduleService和CollectUserLogJob
- 更新文档,移除对废弃组件的引用
- 保留所有有实际用途的组件
- 系统功能验证正常
本次清理工作成功移除了2个真正废弃的组件,更新了相关文档,保持了系统的整洁性。通过这次经历,学会了在代码清理时必须更加谨慎和全面的分析。
根据文档,目前已经采用原始日志ID来维持进度,移除一些关于进度的旧设计(时间戳相关的废弃代码)。
UserLogCollectorManager::resetCollector() 调用了不存在的 resetAllProgress() 方法文件: app/Module/Game/Logics/UserLogCollectorManager.php
resetCollector() 方法,因为基于ID的进度追踪无需重置文件: app/Module/Game/Commands/CollectUserLogsCommand.php
移除的方法:
getGlobalLastProcessedTimestamp(): 全局时间戳追踪已废弃updateGlobalLastProcessedTimestamp(): 手动更新时间戳已废弃getLastProcessedTimestampFromUserLogs(): 时间戳查询已废弃getAllRecordsByTimeline(): 全局时间线排序已废弃修改的方法:
showTimelineProgress(): 改为显示基于ID的进度状态更新了命令描述,明确说明当前使用基于原始日志ID的进度追踪机制。
getLastProcessedId() 获取最后处理的记录IDuser_logs 表中的 source_id 字段自动维护所有功能测试通过:
php artisan game:collect-user-logs --info
✅ 显示5个收集器信息正常
php artisan game:collect-user-logs --detail --limit=5
✅ 进度状态显示正常,处理了2条新记录
php artisan game:collect-user-logs --statistics
✅ 统计信息正常,总日志数120,839条
php artisan game:collect-user-logs-continuous --cycles=2 --limit=5
✅ 持续收集正常,成功率100%