# 特殊农场系统优化说明 ## 概述 特殊农场系统已经过全面优化,解决了服务器重启时间重置和性能问题。现在系统更加稳定、高效,不会影响游戏服务器的正常运行。 ## 主要优化内容 ### 1. 解决服务器重启时间重置问题 **问题**: 之前每次服务器重启都会立即执行维护任务,导致重复种植。 **解决方案**: - 添加维护时间记录功能 - 服务器启动时检查当日是否已执行维护 - 只有当天未维护过才会执行维护任务 - 确保每天只执行一次维护,无论服务器重启多少次 ### 2. 性能优化 **CPU使用优化**: - 调度器检查间隔从1分钟优化到5分钟 - 减少不必要的CPU占用 - 后台线程使用守护模式,不阻塞主进程 **内存管理优化**: - 改进资源清理机制 - 服务器停止时正确释放特殊农场系统资源 - 避免内存泄漏 ### 3. 稳定性改进 **错误处理**: - 增强异常处理机制 - 添加详细的日志记录 - 系统出错时自动恢复 **资源管理**: - 正确的启动和停止流程 - 线程安全的操作 - 避免资源竞争 ## 系统工作原理 ### 定时任务调度 ``` 启动服务器 → 初始化特殊农场管理器 → 检查当日维护状态 ↓ 如果未维护 → 执行维护任务 → 记录维护时间 ↓ 如果已维护 → 跳过维护任务 ↓ 启动后台调度器 → 每天凌晨0点自动维护 ``` ### 维护任务内容 1. **土地开垦**: 确保所有土地都处于已开垦状态 2. **作物种植**: 随机种植杂交树1或杂交树2 3. **状态设置**: 设置作物为立即成熟状态 4. **记录更新**: 更新维护时间记录 ## 使用方法 ### 正常启动 特殊农场系统已集成到游戏服务器中,无需单独启动: ```bash cd Server python TCPGameServer.py ``` ### 手动维护 如果需要手动执行维护任务: ```bash # 维护所有特殊农场 python SpecialFarm.py test manual # 维护指定农场 python SpecialFarm.py test manual 杂交农场 ``` ### 性能监控 使用性能监控工具检查系统资源使用: ```bash python monitor_special_farm.py ``` ### 测试优化效果 运行测试脚本验证优化效果: ```bash python test_special_farm_optimization.py ``` ## 配置说明 ### 特殊农场配置 在 `SpecialFarm.py` 中的 `special_farms` 字典: ```python self.special_farms = { "杂交农场": { "object_id": "689b4b9286cf953f2f4e56ee", "crops": ["杂交树1", "杂交树2"], "description": "专门种植杂交树的特殊农场" } } ``` ### 调度器配置 - **维护时间**: 每天凌晨0点 - **检查间隔**: 5分钟 - **运行模式**: 后台守护线程 ## 性能指标 ### 优化前 vs 优化后 | 指标 | 优化前 | 优化后 | 改进 | |------|--------|--------|------| | CPU检查间隔 | 1分钟 | 5分钟 | 减少80%检查频率 | | 重启重复执行 | 是 | 否 | 避免重复维护 | | 资源清理 | 不完整 | 完整 | 防止内存泄漏 | | 错误恢复 | 基础 | 增强 | 提高稳定性 | ### 预期性能表现 - **CPU使用率**: < 1%(正常运行时) - **内存使用**: < 50MB(额外占用) - **线程数**: +1(后台调度线程) - **启动时间**: < 1秒 ## 故障排除 ### 常见问题 1. **特殊农场未自动维护** - 检查MongoDB连接是否正常 - 查看日志文件 `special_farm.log` - 确认特殊农场配置正确 2. **服务器启动缓慢** - 检查MongoDB连接速度 - 查看是否有网络问题 - 考虑使用本地MongoDB 3. **内存使用过高** - 运行性能监控工具 - 检查是否有内存泄漏 - 重启服务器释放资源 ### 日志文件 - **特殊农场日志**: `special_farm.log` - **服务器日志**: 控制台输出 - **MongoDB日志**: MongoDB服务器日志 ## 维护建议 ### 定期检查 1. **每周检查**: - 查看 `special_farm.log` 日志 - 确认维护任务正常执行 - 检查特殊农场作物状态 2. **每月检查**: - 运行性能监控工具 - 清理过期日志文件 - 检查MongoDB数据库状态 ### 备份建议 - 定期备份MongoDB数据库 - 保存特殊农场配置文件 - 记录重要的配置变更 ## 技术支持 如果遇到问题,请提供以下信息: 1. 错误日志内容 2. 服务器运行环境 3. MongoDB版本和配置 4. 问题复现步骤 --- **注意**: 此优化版本向后兼容,不会影响现有的游戏数据和功能。