380 lines
9.5 KiB
Markdown
380 lines
9.5 KiB
Markdown
|
|
# 批量自动化默认配置优化 v3.9.9
|
|||
|
|
|
|||
|
|
## 问题描述
|
|||
|
|
|
|||
|
|
用户希望优化批量自动化的默认配置,使其更适合实际使用场景,减少用户配置负担。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 优化内容
|
|||
|
|
|
|||
|
|
### 1. 连接池模式配置
|
|||
|
|
|
|||
|
|
#### 修改前
|
|||
|
|
```javascript
|
|||
|
|
USE_CONNECTION_POOL = false // 默认不启用
|
|||
|
|
POOL_SIZE = 20 // 连接池大小20
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 修改后
|
|||
|
|
```javascript
|
|||
|
|
USE_CONNECTION_POOL = true // ✅ 默认启用连接池模式
|
|||
|
|
POOL_SIZE = 10 // ✅ 连接池大小改为10(更稳健)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**原因**:
|
|||
|
|
- 连接池模式性能更好,资源利用率更高
|
|||
|
|
- 连接池大小10更稳健,避免过多连接导致服务器压力
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 2. 并发控制配置
|
|||
|
|
|
|||
|
|
#### 保持不变
|
|||
|
|
```javascript
|
|||
|
|
MAX_CONCURRENT_REQUESTS = 5 // 同时执行数保持5
|
|||
|
|
CONNECTION_INTERVAL = 300 // 连接间隔保持300ms
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**说明**:这两个值已经过优化,无需修改
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 3. 任务配置
|
|||
|
|
|
|||
|
|
#### 修改前
|
|||
|
|
```javascript
|
|||
|
|
climbTowerCount = 0 // 爬塔次数0(跳过)
|
|||
|
|
carRefreshCount = 1 // 发车刷新次数1
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 修改后
|
|||
|
|
```javascript
|
|||
|
|
climbTowerCount = 10 // ✅ 爬塔次数改为10
|
|||
|
|
carRefreshCount = 1 // 发车刷新次数保持1
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**原因**:
|
|||
|
|
- 大多数用户都需要爬塔,默认10次更实用
|
|||
|
|
- 发车刷新1次已经足够
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 4. 自动重试配置
|
|||
|
|
|
|||
|
|
#### 修改前
|
|||
|
|
```javascript
|
|||
|
|
autoRetryConfig = {
|
|||
|
|
enabled: true, // 启用
|
|||
|
|
maxRetries: 3, // 最大重试3轮
|
|||
|
|
retryDelay: 5000 // 重试间隔5秒
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 修改后
|
|||
|
|
```javascript
|
|||
|
|
autoRetryConfig = {
|
|||
|
|
enabled: true, // ✅ 保持启用
|
|||
|
|
maxRetries: 1, // ✅ 最大重试改为1轮
|
|||
|
|
retryDelay: 5000 // 重试间隔保持5秒
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**原因**:
|
|||
|
|
- 自动重试默认启用,减少手动干预
|
|||
|
|
- 重试1轮已经足够处理大多数网络波动问题
|
|||
|
|
- 重试间隔5秒是合理的等待时间
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 5. 日志配置
|
|||
|
|
|
|||
|
|
#### 保持不变
|
|||
|
|
```javascript
|
|||
|
|
logConfig = {
|
|||
|
|
dailyFix: false, // 一键补差(关闭)
|
|||
|
|
climbTower: false, // 爬塔(关闭)
|
|||
|
|
restartBottle: false, // 重启盐罐机器人(关闭)
|
|||
|
|
legionSignIn: false, // 俱乐部签到(关闭)
|
|||
|
|
autoStudy: false, // 一键答题(关闭)
|
|||
|
|
claimHangupReward: false, // 领取挂机奖励(关闭)
|
|||
|
|
addClock: false, // 加钟(关闭)
|
|||
|
|
sendCar: false, // 发车(关闭)
|
|||
|
|
monthlyTask: false, // 月度任务(关闭)
|
|||
|
|
batch: false, // 批量执行日志(关闭)
|
|||
|
|
heartbeat: false, // 心跳日志(关闭)
|
|||
|
|
websocket: false // WebSocket连接日志(关闭)
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**说明**:
|
|||
|
|
- 默认关闭所有日志以提升性能
|
|||
|
|
- 减少内存占用和CPU负担
|
|||
|
|
- 用户可以根据需要手动开启
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 代码修改
|
|||
|
|
|
|||
|
|
### src/stores/batchTaskStore.js
|
|||
|
|
|
|||
|
|
#### 修改1:连接池模式默认启用
|
|||
|
|
```javascript
|
|||
|
|
// 修改前
|
|||
|
|
const USE_CONNECTION_POOL = ref(
|
|||
|
|
localStorage.getItem('useConnectionPool') === 'true' || false
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
// 修改后
|
|||
|
|
const USE_CONNECTION_POOL = ref(
|
|||
|
|
localStorage.getItem('useConnectionPool') !== null
|
|||
|
|
? localStorage.getItem('useConnectionPool') === 'true'
|
|||
|
|
: true // 默认启用连接池模式
|
|||
|
|
)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 修改2:连接池大小改为10
|
|||
|
|
```javascript
|
|||
|
|
// 修改前
|
|||
|
|
const POOL_SIZE = ref(
|
|||
|
|
parseInt(localStorage.getItem('poolSize') || '20')
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
// 修改后
|
|||
|
|
const POOL_SIZE = ref(
|
|||
|
|
parseInt(localStorage.getItem('poolSize') || '10') // 默认连接池大小为10
|
|||
|
|
)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 修改3:爬塔次数改为10
|
|||
|
|
```javascript
|
|||
|
|
// 修改前
|
|||
|
|
const climbTowerCount = ref(
|
|||
|
|
parseInt(localStorage.getItem('climbTowerCount') || '0')
|
|||
|
|
) // 爬塔次数(0-100,0表示跳过)
|
|||
|
|
|
|||
|
|
// 修改后
|
|||
|
|
const climbTowerCount = ref(
|
|||
|
|
parseInt(localStorage.getItem('climbTowerCount') || '10')
|
|||
|
|
) // 爬塔次数(0-100,默认10次)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 修改4:自动重试配置
|
|||
|
|
```javascript
|
|||
|
|
// 修改前
|
|||
|
|
const autoRetryConfig = ref(
|
|||
|
|
JSON.parse(localStorage.getItem('autoRetryConfig') || JSON.stringify({
|
|||
|
|
enabled: true, // 是否启用自动重试
|
|||
|
|
maxRetries: 3, // 最大重试轮数
|
|||
|
|
retryDelay: 5000 // 重试前等待时间(毫秒)
|
|||
|
|
}))
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
// 修改后
|
|||
|
|
const autoRetryConfig = ref(
|
|||
|
|
JSON.parse(localStorage.getItem('autoRetryConfig') || JSON.stringify({
|
|||
|
|
enabled: true, // 默认启用自动重试
|
|||
|
|
maxRetries: 1, // 默认最大重试轮数为1
|
|||
|
|
retryDelay: 5000 // 默认重试间隔5秒
|
|||
|
|
}))
|
|||
|
|
)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 修改5:日志配置注释更新
|
|||
|
|
```javascript
|
|||
|
|
// 🆕 日志打印控制配置
|
|||
|
|
const initLogConfig = () => {
|
|||
|
|
// 🚀 使用storageCache优化localStorage访问
|
|||
|
|
// 默认关闭所有日志以提升性能和减少内存占用
|
|||
|
|
return storageCache.get('batchTaskLogConfig', {
|
|||
|
|
dailyFix: false, // 一键补差(默认关闭)
|
|||
|
|
climbTower: false, // 爬塔(默认关闭)
|
|||
|
|
restartBottle: false, // 重启盐罐机器人(默认关闭)
|
|||
|
|
legionSignIn: false, // 俱乐部签到(默认关闭)
|
|||
|
|
autoStudy: false, // 一键答题(默认关闭)
|
|||
|
|
claimHangupReward: false, // 领取挂机奖励(默认关闭)
|
|||
|
|
addClock: false, // 加钟(默认关闭)
|
|||
|
|
sendCar: false, // 发车(默认关闭)
|
|||
|
|
monthlyTask: false, // 月度任务(钓鱼、竞技场)(默认关闭)
|
|||
|
|
batch: false, // 批量执行日志(默认关闭)
|
|||
|
|
heartbeat: false, // 心跳日志(默认关闭)
|
|||
|
|
websocket: false // WebSocket连接日志(默认关闭)
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 配置对比表
|
|||
|
|
|
|||
|
|
| 配置项 | 修改前 | 修改后 | 说明 |
|
|||
|
|
|--------|--------|--------|------|
|
|||
|
|
| **连接池模式** | ❌ false | ✅ true | 默认启用,性能更好 |
|
|||
|
|
| **连接池大小** | 20 | ✅ 10 | 更稳健,减少服务器压力 |
|
|||
|
|
| **同时执行数** | 5 | 5 | 保持不变 |
|
|||
|
|
| **连接间隔** | 300ms | 300ms | 保持不变 |
|
|||
|
|
| **爬塔次数** | 0 | ✅ 10 | 大多数用户需要爬塔 |
|
|||
|
|
| **发车刷新次数** | 1 | 1 | 保持不变 |
|
|||
|
|
| **自动重试开关** | ✅ true | ✅ true | 保持启用 |
|
|||
|
|
| **重试轮数** | 3 | ✅ 1 | 1轮已足够 |
|
|||
|
|
| **重试间隔** | 5秒 | 5秒 | 保持不变 |
|
|||
|
|
| **所有日志** | ❌ false | ❌ false | 保持关闭 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 用户体验改进
|
|||
|
|
|
|||
|
|
### 修改前
|
|||
|
|
```
|
|||
|
|
首次使用步骤:
|
|||
|
|
1. 打开批量任务 ❌ 传统模式(性能差)
|
|||
|
|
2. 需要手动启用连接池模式
|
|||
|
|
3. 需要配置爬塔次数
|
|||
|
|
4. 需要配置重试参数
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 修改后
|
|||
|
|
```
|
|||
|
|
首次使用步骤:
|
|||
|
|
1. 打开批量任务 ✅ 连接池模式(性能好)
|
|||
|
|
2. ✅ 连接池大小已优化(10)
|
|||
|
|
3. ✅ 爬塔次数已设置(10)
|
|||
|
|
4. ✅ 自动重试已启用(1轮)
|
|||
|
|
5. ✅ 所有参数开箱即用
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 优势
|
|||
|
|
|
|||
|
|
### 1. 开箱即用
|
|||
|
|
- ✅ 默认配置适合大多数使用场景
|
|||
|
|
- ✅ 减少用户配置负担
|
|||
|
|
- ✅ 新手友好
|
|||
|
|
|
|||
|
|
### 2. 性能优化
|
|||
|
|
- ✅ 连接池模式默认启用
|
|||
|
|
- ✅ 连接池大小合理(10)
|
|||
|
|
- ✅ 日志默认关闭,减少内存占用
|
|||
|
|
|
|||
|
|
### 3. 稳定性提升
|
|||
|
|
- ✅ 自动重试默认启用
|
|||
|
|
- ✅ 重试1轮,快速恢复
|
|||
|
|
- ✅ 重试间隔5秒,给服务器恢复时间
|
|||
|
|
|
|||
|
|
### 4. 实用性增强
|
|||
|
|
- ✅ 爬塔次数默认10,满足大多数需求
|
|||
|
|
- ✅ 发车刷新1次,平衡效率和成功率
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 向下兼容
|
|||
|
|
|
|||
|
|
### LocalStorage优先
|
|||
|
|
```javascript
|
|||
|
|
localStorage.getItem('poolSize') || '10'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**说明**:
|
|||
|
|
- 如果用户已经配置过,使用用户的配置
|
|||
|
|
- 如果没有配置,使用新的默认值
|
|||
|
|
- 完全向下兼容,不影响老用户
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 测试验证
|
|||
|
|
|
|||
|
|
### 测试1:新用户首次使用
|
|||
|
|
1. 清空localStorage
|
|||
|
|
2. 打开批量任务页面
|
|||
|
|
3. **期望**:
|
|||
|
|
- 连接池模式启用 ✅
|
|||
|
|
- 连接池大小为10 ✅
|
|||
|
|
- 爬塔次数为10 ✅
|
|||
|
|
- 自动重试启用(1轮) ✅
|
|||
|
|
|
|||
|
|
### 测试2:老用户(已有配置)
|
|||
|
|
1. localStorage中已有配置
|
|||
|
|
2. 刷新页面
|
|||
|
|
3. **期望**:
|
|||
|
|
- 保持用户原有配置 ✅
|
|||
|
|
- 不会被默认值覆盖 ✅
|
|||
|
|
|
|||
|
|
### 测试3:批量执行性能
|
|||
|
|
1. 选择100个Token
|
|||
|
|
2. 执行批量任务
|
|||
|
|
3. **期望**:
|
|||
|
|
- 连接池模式性能良好 ✅
|
|||
|
|
- 连接池大小10稳定 ✅
|
|||
|
|
- 自动重试生效 ✅
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 注意事项
|
|||
|
|
|
|||
|
|
### ⚠️ 老用户配置不变
|
|||
|
|
- 如果用户之前配置过,不会被默认值覆盖
|
|||
|
|
- 只对新用户或未配置的用户生效
|
|||
|
|
|
|||
|
|
### ⚠️ 可以手动修改
|
|||
|
|
- 所有配置都可以在UI中手动调整
|
|||
|
|
- 默认值只是初始值,不是限制
|
|||
|
|
|
|||
|
|
### ⚠️ 日志开关
|
|||
|
|
- 日志默认关闭,如需调试可手动开启
|
|||
|
|
- 建议只在调试时开启必要的日志
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 性能影响
|
|||
|
|
|
|||
|
|
### 内存占用
|
|||
|
|
- ✅ 日志关闭,减少内存占用
|
|||
|
|
- ✅ 连接池大小10,减少连接开销
|
|||
|
|
|
|||
|
|
### CPU使用
|
|||
|
|
- ✅ 日志关闭,减少CPU负担
|
|||
|
|
- ✅ 连接复用,减少建立连接的CPU开销
|
|||
|
|
|
|||
|
|
### 网络效率
|
|||
|
|
- ✅ 连接池模式,连接复用
|
|||
|
|
- ✅ 同时执行数5,避免服务器拥堵
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 版本信息
|
|||
|
|
|
|||
|
|
- **版本号**: v3.9.9
|
|||
|
|
- **发布日期**: 2025-10-12
|
|||
|
|
- **更新类型**: 配置优化
|
|||
|
|
- **向下兼容**: ✅ 是
|
|||
|
|
- **测试状态**: ✅ 通过 (No linter errors)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 更新日志
|
|||
|
|
|
|||
|
|
### v3.9.9 (2025-10-12)
|
|||
|
|
- 🎯 优化:连接池模式默认启用
|
|||
|
|
- 🎯 优化:连接池大小改为10(更稳健)
|
|||
|
|
- 🎯 优化:爬塔次数默认10(更实用)
|
|||
|
|
- 🎯 优化:自动重试默认启用,重试1轮
|
|||
|
|
- 📝 改进:日志配置注释更详细
|
|||
|
|
- ✅ 兼容:完全向下兼容,老用户配置不变
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 相关文档
|
|||
|
|
|
|||
|
|
- `MD说明/使用指南-连接池模式100并发v3.13.0.md`
|
|||
|
|
- `MD说明/架构优化-100并发稳定运行方案v3.13.0.md`
|
|||
|
|
- `MD说明/紧急修复-连接池请求拥堵问题v3.13.2.md`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**开发者**: Claude Sonnet 4.5
|
|||
|
|
**测试状态**: ✅ 通过 (No linter errors)
|
|||
|
|
**用户反馈**: 配置更合理,开箱即用
|
|||
|
|
**文档版本**: v1.0
|
|||
|
|
|