添加
This commit is contained in:
199
Server/test/文档/特殊农场系统优化说明.md
Normal file
199
Server/test/文档/特殊农场系统优化说明.md
Normal file
@@ -0,0 +1,199 @@
|
||||
# 特殊农场系统优化说明
|
||||
|
||||
## 概述
|
||||
|
||||
特殊农场系统已经过全面优化,解决了服务器重启时间重置和性能问题。现在系统更加稳定、高效,不会影响游戏服务器的正常运行。
|
||||
|
||||
## 主要优化内容
|
||||
|
||||
### 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. 问题复现步骤
|
||||
|
||||
---
|
||||
|
||||
**注意**: 此优化版本向后兼容,不会影响现有的游戏数据和功能。
|
||||
Reference in New Issue
Block a user