# 功能更新:自定义并发数量 (1-6) ## 📋 更新说明 **用户需求**:希望并发数量可以自定义,支持1-6个并发。 **更新内容**: - ✅ 并发数从固定5个改为可自定义1-6个 - ✅ 添加滑块UI控件,直观调整并发数 - ✅ 实时保存到localStorage,刷新后保持设置 - ✅ 显示当前并发数标签 --- ## 🎯 功能特点 ### 1. 灵活可调 ``` 1个并发: 逐个执行,适合网络不稳定或服务器压力大的情况 2个并发: 保守执行,降低风险 3个并发: 平衡速度和稳定性 4个并发: 较快速度 5个并发: 默认推荐,平衡最佳 ⭐ 6个并发: 最快速度,适合网络好且服务器稳定的情况 ``` ### 2. 实时调整 - ✅ 滑块拖动即可调整 - ✅ 显示刻度标记(1-6) - ✅ 实时保存配置 - ✅ 下次执行自动应用 ### 3. 智能限制 - ✅ 执行中禁止修改(避免冲突) - ✅ 范围限制1-6(防止设置不合理的值) - ✅ 显示当前并发数标签 --- ## 🎨 UI界面 ### 批量任务面板 ``` ╔═════════════════════════════════════════════╗ ║ 批量自动化任务 并发数: 5 ║ ╠═════════════════════════════════════════════╣ ║ 选择任务模板: 并发数量: ║ ║ [完整套餐 ▼] 1 - ●----- 6 ║ ║ ↑ 滑块控件 ║ ╚═════════════════════════════════════════════╝ ``` ### 并发数显示 - 右上角标签:`并发数: 5` (绿色徽章) - 滑块下方实时显示当前值 - 拖动滑块立即更新 --- ## 🔧 修改的文件 ### 1. 核心Store **文件**: `src/stores/batchTaskStore.js` **修改内容**: ```javascript // 从固定值改为从localStorage读取 const maxConcurrency = ref( parseInt(localStorage.getItem('maxConcurrency') || '5') ) // 新增设置方法 const setMaxConcurrency = (count) => { if (count < 1 || count > 6) { console.warn('⚠️ 并发数必须在1-6之间') return } maxConcurrency.value = count localStorage.setItem('maxConcurrency', count.toString()) console.log(`⚙️ 并发数已设置为: ${count}`) } ``` ### 2. UI组件 **文件**: `src/components/BatchTaskPanel.vue` **新增UI**: - 并发数标签显示 - 滑块控件(NSlider) - 刻度标记(1-6) - 修改提示消息 --- ## 🚀 使用方法 ### 方法1:通过滑块调整 1. 打开Token管理页面 (`/tokens`) 2. 在批量任务面板找到"并发数量"滑块 3. 拖动滑块到想要的数值(1-6) 4. 自动保存,立即生效 ### 方法2:通过代码设置 ```javascript // 在浏览器控制台 import { useBatchTaskStore } from '@/stores/batchTaskStore' const batchStore = useBatchTaskStore() // 设置并发数为3 batchStore.setMaxConcurrency(3) // 查看当前并发数 console.log(batchStore.maxConcurrency) // 输出: 3 ``` --- ## 📊 不同并发数的对比 ### 性能对比(10个Token,每个4个任务) | 并发数 | 预计耗时 | 服务器压力 | 推荐场景 | |--------|---------|-----------|---------| | 1 | ~40秒 | 最低 ⭐ | 网络不稳定、服务器敏感 | | 2 | ~20秒 | 低 | 保守执行 | | 3 | ~14秒 | 中低 | 一般稳定网络 | | 4 | ~10秒 | 中 | 较好网络环境 | | 5 | ~8秒 | 中高 ⭐ | 默认推荐 | | 6 | ~7秒 | 高 | 网络极佳、服务器稳定 | **计算公式**: ``` 理论耗时 = (Token数 ÷ 并发数) × 单Token耗时 实际耗时 = 理论耗时 + 网络延迟 + 任务间隔 ``` --- ## 💡 使用建议 ### 推荐配置 #### 场景1:网络不稳定 ``` 并发数: 1-2 原因: 减少网络拥堵,提高成功率 适用: 移动网络、公共WiFi ``` #### 场景2:服务器高峰期 ``` 并发数: 2-3 原因: 降低服务器压力,避免被限流 适用: 游戏更新后、活动期间 ``` #### 场景3:日常使用 ``` 并发数: 5 ⭐ (默认) 原因: 平衡速度和稳定性 适用: 大部分情况 ``` #### 场景4:深夜/凌晨 ``` 并发数: 6 原因: 服务器压力小,可以最快速度执行 适用: 凌晨定时任务 ``` ### 动态调整策略 ```javascript // 根据时间动态调整 早高峰 (7-9点): 并发数 2-3 工作日白天: 并发数 3-4 晚高峰 (18-21点): 并发数 2-3 深夜 (23-6点): 并发数 5-6 周末全天: 并发数 4-5 ``` --- ## 🔍 执行日志示例 ### 并发数为1 ``` 🚀 开始批量执行任务 📋 Token数量: 5 📋 任务列表: 4个任务 ⚙️ 并发数: 1 🎯 开始执行 Token: 主号战士 ✅ Token完成: 主号战士 🔌 断开WebSocket连接: 主号战士 🎯 开始执行 Token: 小号法师 ✅ Token完成: 小号法师 🔌 断开WebSocket连接: 小号法师 ...(逐个执行) ``` ### 并发数为5 ``` 🚀 开始批量执行任务 📋 Token数量: 5 📋 任务列表: 4个任务 ⚙️ 并发数: 5 🎯 开始执行 Token: 主号战士 🎯 开始执行 Token: 小号法师 🎯 开始执行 Token: 练级号 🎯 开始执行 Token: 打金号 🎯 开始执行 Token: 测试号 ✅ Token完成: 主号战士 ✅ Token完成: 小号法师 ✅ Token完成: 练级号 ✅ Token完成: 打金号 ✅ Token完成: 测试号 ...(5个同时执行) ``` --- ## ⚙️ 技术细节 ### localStorage存储 ```javascript // 存储键 localStorage.setItem('maxConcurrency', '5') // 读取(默认5) parseInt(localStorage.getItem('maxConcurrency') || '5') ``` ### 响应式更新 ```javascript // maxConcurrency是响应式ref const maxConcurrency = ref(5) // UI滑块绑定 v-model:value="batchStore.maxConcurrency" // 实时更新 @update:value="handleConcurrencyChange" ``` ### 并发控制逻辑 ```javascript // 填充执行队列(最多maxConcurrency个) while (executing.length < maxConcurrency.value && queue.length > 0) { const tokenId = queue.shift() const promise = executeTokenTasks(tokenId, tasks) executing.push(promise) } // 等待至少一个完成 if (executing.length > 0) { await Promise.race(executing) } ``` --- ## 🎯 实际应用示例 ### 示例1:快速测试(1个并发) ``` 场景: 测试新功能是否正常 设置: 并发数 = 1 时长: 较慢,但便于观察每个Token的执行情况 ``` ### 示例2:日常任务(5个并发) ``` 场景: 每天早晨执行日常任务 设置: 并发数 = 5(默认) 时长: 10个Token约16秒 ``` ### 示例3:深夜定时(6个并发) ``` 场景: 凌晨3点定时执行完整套餐 设置: 并发数 = 6(最快) 时长: 10个Token约14秒 ``` ### 示例4:网络差(2个并发) ``` 场景: 移动网络4G环境 设置: 并发数 = 2 时长: 较慢,但成功率更高 ``` --- ## ⚠️ 注意事项 ### 1. 执行中不可修改 - 批量任务执行中,滑块会被禁用 - 需要等待当前批次完成后才能修改 - 避免执行过程中改变并发策略导致混乱 ### 2. 合理设置 - 并发数越大,服务器压力越大 - 可能触发服务器的限流机制 - 建议根据实际情况调整 ### 3. 网络环境 - 网络不稳定时建议降低并发数 - 延迟高的网络适合1-3并发 - 本地网络可以使用5-6并发 ### 4. Token数量 - Token数量少于并发数时,实际并发 = Token数 - 例如:3个Token,并发设为5,实际只有3个同时执行 --- ## 📈 性能监控 ### 查看实际并发情况 ```javascript // 浏览器控制台 import { useBatchTaskStore } from '@/stores/batchTaskStore' const batchStore = useBatchTaskStore() // 查看当前并发数设置 console.log('设置并发数:', batchStore.maxConcurrency) // 查看实际执行中的Token数 console.log('执行中Token:', batchStore.executingTokens.size) // 查看执行统计 console.log('执行统计:', batchStore.executionStats) ``` --- ## 🎉 总结 本次更新让并发数量变得**灵活可控**: ### 核心特性 - ✅ **自定义范围**: 1-6个并发任意选择 - ✅ **滑块UI**: 直观易用的调整界面 - ✅ **持久化**: 自动保存,下次打开仍然生效 - ✅ **智能限制**: 执行中禁止修改,防止冲突 ### 实用价值 - ✅ **灵活调整**: 根据网络和服务器情况动态调整 - ✅ **优化速度**: 网络好时提高并发,加快执行 - ✅ **提高稳定性**: 网络差时降低并发,提升成功率 - ✅ **个性化**: 每个用户可以根据自己的需求设置 **现在你可以完全掌控批量任务的执行速度了!** 🚀 --- ## 📚 相关文档 - `批量任务使用说明.md` - 完整使用教程 - `批量任务功能实现总结.md` - 技术实现详解 - `优化-自动断开连接.md` - 连接管理优化