Files
Sprout-Farm/Server/特殊农场系统优化说明.md

199 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 特殊农场系统优化说明
## 概述
特殊农场系统已经过全面优化,解决了服务器重启时间重置和性能问题。现在系统更加稳定、高效,不会影响游戏服务器的正常运行。
## 主要优化内容
### 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. 问题复现步骤
---
**注意**: 此优化版本向后兼容,不会影响现有的游戏数据和功能。