8.7 KiB
8.7 KiB
功能更新:自定义并发数量 (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
修改内容:
// 从固定值改为从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:通过滑块调整
- 打开Token管理页面 (
/tokens) - 在批量任务面板找到"并发数量"滑块
- 拖动滑块到想要的数值(1-6)
- 自动保存,立即生效
方法2:通过代码设置
// 在浏览器控制台
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
原因: 服务器压力小,可以最快速度执行
适用: 凌晨定时任务
动态调整策略
// 根据时间动态调整
早高峰 (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存储
// 存储键
localStorage.setItem('maxConcurrency', '5')
// 读取(默认5)
parseInt(localStorage.getItem('maxConcurrency') || '5')
响应式更新
// maxConcurrency是响应式ref
const maxConcurrency = ref(5)
// UI滑块绑定
v-model:value="batchStore.maxConcurrency"
// 实时更新
@update:value="handleConcurrencyChange"
并发控制逻辑
// 填充执行队列(最多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个同时执行
📈 性能监控
查看实际并发情况
// 浏览器控制台
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- 连接管理优化