381 lines
8.7 KiB
Markdown
381 lines
8.7 KiB
Markdown
# 更新日志 - 并发数扩展到100个 v3.6.0
|
||
|
||
**更新时间**: 2025-10-07
|
||
**版本**: v3.6.0
|
||
|
||
## 🎯 更新概述
|
||
|
||
应用户需求,将批量自动化任务的并发数量范围从 **1-21** 扩展到 **1-100**,支持更大规模的批量操作。
|
||
|
||
---
|
||
|
||
## ✨ 主要改进
|
||
|
||
### 并发数量范围扩展
|
||
|
||
| 项目 | 修改前 | 修改后 | 提升 |
|
||
|-----|--------|--------|------|
|
||
| 最小并发数 | 1 | 1 | 不变 |
|
||
| 最大并发数 | 21 | 100 | +376% |
|
||
| 推荐并发数 | 5 | 5-20 | - |
|
||
|
||
---
|
||
|
||
## 📝 修改详情
|
||
|
||
### 1. 后端Store修改
|
||
|
||
**文件**: `src/stores/batchTaskStore.js`
|
||
|
||
#### 修改1: 注释更新
|
||
|
||
```javascript
|
||
// 修改前
|
||
const maxConcurrency = ref(
|
||
parseInt(localStorage.getItem('maxConcurrency') || '5')
|
||
) // 最大并发数(可配置1-21)
|
||
|
||
// 修改后
|
||
const maxConcurrency = ref(
|
||
parseInt(localStorage.getItem('maxConcurrency') || '5')
|
||
) // 最大并发数(可配置1-100)
|
||
```
|
||
|
||
#### 修改2: 验证逻辑更新
|
||
|
||
```javascript
|
||
const setMaxConcurrency = (count) => {
|
||
// 修改前
|
||
if (count < 1 || count > 21) {
|
||
console.warn('⚠️ 并发数必须在1-21之间')
|
||
return
|
||
}
|
||
|
||
// 修改后
|
||
if (count < 1 || count > 100) {
|
||
console.warn('⚠️ 并发数必须在1-100之间')
|
||
return
|
||
}
|
||
|
||
maxConcurrency.value = count
|
||
localStorage.setItem('maxConcurrency', count.toString())
|
||
console.log(`⚙️ 并发数已设置为: ${count}`)
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 2. 前端UI修改
|
||
|
||
**文件**: `src/components/BatchTaskPanel.vue`
|
||
|
||
#### 滑块组件配置更新
|
||
|
||
```vue
|
||
<!-- 修改前 -->
|
||
<n-slider
|
||
v-model:value="batchStore.maxConcurrency"
|
||
:min="1"
|
||
:max="21"
|
||
:step="1"
|
||
:marks="{1: '1', 5: '5', 10: '10', 15: '15', 20: '20', 21: '21'}"
|
||
:disabled="batchStore.isExecuting"
|
||
:tooltip="true"
|
||
@update:value="handleConcurrencyChange"
|
||
/>
|
||
|
||
<!-- 修改后 -->
|
||
<n-slider
|
||
v-model:value="batchStore.maxConcurrency"
|
||
:min="1"
|
||
:max="100"
|
||
:step="1"
|
||
:marks="{1: '1', 10: '10', 20: '20', 30: '30', 40: '40', 50: '50', 60: '60', 70: '70', 80: '80', 90: '90', 100: '100'}"
|
||
:disabled="batchStore.isExecuting"
|
||
:tooltip="true"
|
||
@update:value="handleConcurrencyChange"
|
||
/>
|
||
```
|
||
|
||
#### 刻度标记优化
|
||
|
||
**修改前**: 7个刻度(1, 5, 10, 15, 20, 21)
|
||
**修改后**: 11个刻度(1, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100)
|
||
|
||
**优化原因**:
|
||
- 更均匀的间隔(每10个一个刻度)
|
||
- 更易于快速定位到目标值
|
||
- 避免刻度过于密集
|
||
|
||
---
|
||
|
||
## 🎨 UI效果对比
|
||
|
||
### 修改前的滑块
|
||
```
|
||
1────5────10────15────20──21
|
||
└─────────────────────────┘
|
||
(范围: 1-21)
|
||
```
|
||
|
||
### 修改后的滑块
|
||
```
|
||
1──10──20──30──40──50──60──70──80──90──100
|
||
└────────────────────────────────────────┘
|
||
(范围: 1-100)
|
||
```
|
||
|
||
---
|
||
|
||
## 📊 性能影响分析
|
||
|
||
### 连接建立时间(错开连接)
|
||
|
||
| 并发数 | 连接错开时间 | 总耗时 |
|
||
|-------|------------|--------|
|
||
| 21个 | 300ms/个 | 6.3秒 |
|
||
| 50个 | 300ms/个 | 15秒 |
|
||
| 100个 | 300ms/个 | 30秒 |
|
||
|
||
**说明**:
|
||
- 系统会错开每个连接的建立时间(300ms间隔)
|
||
- 避免同时建立过多连接导致服务器过载
|
||
- 100个并发时,所有连接建立完成需要30秒
|
||
|
||
---
|
||
|
||
### 执行时间估算(以"一键补差"为例)
|
||
|
||
假设单个Token执行时间为60秒:
|
||
|
||
| 并发数 | Token总数 | 执行批次 | 总耗时 |
|
||
|-------|----------|---------|--------|
|
||
| 5个 | 100个 | 20批 | ~20分钟 |
|
||
| 21个 | 100个 | 5批 | ~5分钟 |
|
||
| 50个 | 100个 | 2批 | ~2分钟 |
|
||
| 100个 | 100个 | 1批 | ~1分钟 |
|
||
|
||
**提升**: 从21并发到100并发,100个Token的执行时间可从5分钟缩短到1分钟(**-80%**)
|
||
|
||
---
|
||
|
||
### 资源消耗预估
|
||
|
||
| 并发数 | CPU占用 | 内存占用 | 网络连接 |
|
||
|-------|---------|---------|---------|
|
||
| 21个 | 1.5% | ~200MB | 21个WS |
|
||
| 50个 | 3-4% | ~500MB | 50个WS |
|
||
| 100个 | 6-8% | ~1GB | 100个WS |
|
||
|
||
**注意事项**:
|
||
- 需要确保电脑配置足够(推荐8GB+内存)
|
||
- 关闭浏览器控制台可显著降低CPU占用
|
||
- 网络带宽需要支持多个并发WebSocket连接
|
||
|
||
---
|
||
|
||
## ⚠️ 使用建议
|
||
|
||
### 推荐并发数(根据Token数量)
|
||
|
||
| Token数量 | 推荐并发 | 说明 |
|
||
|----------|---------|------|
|
||
| ≤ 10个 | 5-10 | 默认配置即可 |
|
||
| 11-50个 | 10-20 | 平衡速度和稳定性 |
|
||
| 51-100个 | 20-50 | 大幅提升效率 |
|
||
| 101-300个 | 50-80 | 超大规模批量 |
|
||
| 300+个 | 80-100 | 极限并发 |
|
||
|
||
---
|
||
|
||
### 分段并发策略
|
||
|
||
**场景**: 有300个Token需要执行任务
|
||
|
||
**策略1: 保守稳定**(推荐)
|
||
- 并发数: 30-50
|
||
- 执行时间: ~10-15分钟
|
||
- 稳定性: ⭐⭐⭐⭐⭐
|
||
|
||
**策略2: 激进快速**
|
||
- 并发数: 80-100
|
||
- 执行时间: ~5-8分钟
|
||
- 稳定性: ⭐⭐⭐(可能有少量连接失败)
|
||
|
||
**策略3: 分批执行**
|
||
- 第一批: 100个(并发50)
|
||
- 第二批: 100个(并发50)
|
||
- 第三批: 100个(并发50)
|
||
- 总时间: ~15分钟
|
||
- 稳定性: ⭐⭐⭐⭐⭐
|
||
|
||
---
|
||
|
||
## 🔧 故障排查
|
||
|
||
### 问题1: 高并发时连接失败
|
||
|
||
**现象**: 并发数设置为80+时,部分Token连接失败
|
||
|
||
**原因**:
|
||
- 服务器连接数限制
|
||
- 网络带宽不足
|
||
- 系统资源不足
|
||
|
||
**解决方案**:
|
||
1. 降低并发数到50-60
|
||
2. 分批执行
|
||
3. 检查网络连接质量
|
||
4. 关闭其他占用网络的应用
|
||
|
||
---
|
||
|
||
### 问题2: 浏览器卡顿
|
||
|
||
**现象**: 并发数高时浏览器响应缓慢
|
||
|
||
**原因**:
|
||
- 浏览器控制台打开
|
||
- CPU占用过高
|
||
- 内存不足
|
||
|
||
**解决方案**:
|
||
1. **关闭浏览器控制台**(最有效)
|
||
2. 降低并发数
|
||
3. 最小化浏览器窗口
|
||
4. 关闭其他浏览器标签页
|
||
|
||
---
|
||
|
||
### 问题3: 内存占用过高
|
||
|
||
**现象**: 长时间高并发运行后内存占用持续增长
|
||
|
||
**原因**:
|
||
- WebSocket连接缓存
|
||
- 日志数据积累
|
||
|
||
**解决方案**:
|
||
1. 执行完成后刷新页面
|
||
2. 定期清理执行历史
|
||
3. 分批执行,避免长时间运行
|
||
|
||
---
|
||
|
||
## 🚀 性能优化建议
|
||
|
||
### 1. 系统配置优化
|
||
|
||
**推荐配置**:
|
||
- CPU: 4核心+
|
||
- 内存: 8GB+
|
||
- 网络: 稳定的宽带连接(10Mbps+)
|
||
- 浏览器: 最新版Chrome/Edge
|
||
|
||
---
|
||
|
||
### 2. 浏览器优化
|
||
|
||
**必做**:
|
||
- ✅ 关闭浏览器控制台
|
||
- ✅ 关闭不必要的标签页
|
||
- ✅ 最小化浏览器窗口
|
||
|
||
**可选**:
|
||
- 禁用浏览器扩展
|
||
- 清理浏览器缓存
|
||
- 使用隐私模式
|
||
|
||
---
|
||
|
||
### 3. 并发策略优化
|
||
|
||
**智能并发建议**:
|
||
|
||
```javascript
|
||
// 根据Token数量自动计算推荐并发数
|
||
const recommendedConcurrency = (tokenCount) => {
|
||
if (tokenCount <= 10) return 5
|
||
if (tokenCount <= 50) return Math.min(20, Math.ceil(tokenCount / 3))
|
||
if (tokenCount <= 100) return Math.min(50, Math.ceil(tokenCount / 2))
|
||
return Math.min(80, Math.ceil(tokenCount / 4))
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 📈 预期收益
|
||
|
||
### 时间节省(100个Token)
|
||
|
||
| 场景 | 并发21 | 并发50 | 并发100 | 节省时间 |
|
||
|-----|--------|--------|---------|---------|
|
||
| 一键补差 | 5分钟 | 2分钟 | 1分钟 | -80% |
|
||
| 快速套餐 | 3分钟 | 1.2分钟 | 36秒 | -80% |
|
||
| 完整套餐 | 8分钟 | 3.2分钟 | 1.6分钟 | -80% |
|
||
|
||
### 大规模场景(300个Token)
|
||
|
||
| 并发数 | 总耗时 | vs 并发21 |
|
||
|-------|--------|----------|
|
||
| 21 | ~60分钟 | 基准 |
|
||
| 50 | ~24分钟 | -60% |
|
||
| 100 | ~12分钟 | **-80%** |
|
||
|
||
**结论**: 对于管理大量Token(100+)的用户,效率提升显著!
|
||
|
||
---
|
||
|
||
## 🛡️ 安全与稳定性
|
||
|
||
### 保护措施
|
||
|
||
1. **连接错开** - 300ms间隔,避免瞬时压力
|
||
2. **重试机制** - 连接失败自动重试(最多3次)
|
||
3. **指数退避** - 重试间隔逐渐增加
|
||
4. **连接稳定期** - 建立连接后等待2秒再执行任务
|
||
|
||
### 限制与边界
|
||
|
||
| 项目 | 限制 | 说明 |
|
||
|-----|------|------|
|
||
| 最小并发 | 1 | 顺序执行 |
|
||
| 最大并发 | 100 | 系统上限 |
|
||
| 默认并发 | 5 | 首次使用 |
|
||
| 推荐最大 | 80 | 兼顾速度和稳定性 |
|
||
|
||
---
|
||
|
||
## 📌 总结
|
||
|
||
本次更新将并发数上限从21提升到100,为管理大量Token的用户提供了更强大的批量处理能力:
|
||
|
||
### 核心价值
|
||
|
||
1. ✅ **效率提升** - 大规模批量操作速度提升高达80%
|
||
2. ✅ **灵活配置** - 支持1-100任意并发数
|
||
3. ✅ **稳定可靠** - 保留连接错开、重试等保护机制
|
||
4. ✅ **用户友好** - 滑块刻度优化,更易于操作
|
||
|
||
### 适用场景
|
||
|
||
- 🎯 管理100+游戏账号
|
||
- 🎯 每日批量任务自动化
|
||
- 🎯 大规模Token导入
|
||
- 🎯 快速批量操作
|
||
|
||
### 注意事项
|
||
|
||
- ⚠️ 高并发需要更好的硬件配置
|
||
- ⚠️ 建议根据Token数量选择合适并发数
|
||
- ⚠️ 关闭浏览器控制台以降低CPU占用
|
||
- ⚠️ 网络不稳定时建议降低并发数
|
||
|
||
---
|
||
|
||
**最后更新**: 2025-10-07
|
||
**版本**: v3.6.0
|
||
**向后兼容**: ✅ 完全兼容
|
||
**关联版本**: v3.3.1 (并发数扩展到21个)
|
||
|