1.0
This commit is contained in:
380
MD说明文件夹/更新日志-并发数扩展到100个v3.6.0.md
Normal file
380
MD说明文件夹/更新日志-并发数扩展到100个v3.6.0.md
Normal file
@@ -0,0 +1,380 @@
|
||||
# 更新日志 - 并发数扩展到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个)
|
||||
|
||||
Reference in New Issue
Block a user