348 lines
9.4 KiB
Markdown
348 lines
9.4 KiB
Markdown
# 方案C实施:全面增加超时时间 v3.11.13
|
||
|
||
## 📋 更新时间
|
||
2025-10-08
|
||
|
||
## 🎯 问题描述
|
||
|
||
用户采用**方案C:增加超时时间**,以解决任务全部失败的问题。
|
||
|
||
### 原因分析
|
||
- 大部分任务超时时间仅为**1000ms(1秒)**
|
||
- 在高并发或网络延迟情况下,1秒不够
|
||
- 导致大量`请求超时: xxx (1000ms)`错误
|
||
|
||
---
|
||
|
||
## ✅ 已实施的超时调整
|
||
|
||
### 1️⃣ 通用任务超时:1000ms → 3000ms
|
||
|
||
| 任务 | 命令 | 调整前 | 调整后 | 位置(行号) |
|
||
|------|------|--------|--------|-------------|
|
||
| 赠送好友金币 | `friend_batch` | 1000ms | 3000ms | 591 |
|
||
| 免费点金 | `system_buygold` | 1000ms | 3000ms | 633 |
|
||
| 福利签到 | `system_signinreward` | 1000ms | 3000ms | 660 |
|
||
| 领取每日礼包 | `discount_claimreward` | 1000ms | 3000ms | 669 |
|
||
| 领取免费礼包 | `card_claimreward` | 1000ms | 3000ms | 678 |
|
||
| 领取免费扫荡卷 | `genie_buysweep` | 1000ms | 3000ms | 744 |
|
||
| 竞技场 | `arena_startarea` | 1000ms | 3000ms | 773 |
|
||
| 军团BOSS | `fight_startlegionboss` | 1000ms | 3000ms | 816 |
|
||
| 领取盐罐奖励 | `bottlehelper_claim` | 1000ms | 3000ms | 873 |
|
||
| 领取日常任务奖励 | `task_claimdailyreward` | 1000ms | 3000ms | 901 |
|
||
| 领取周常任务奖励 | `task_claimweekreward` | 1000ms | 3000ms | 910 |
|
||
| 俱乐部签到 | `legion_signin` | 1000ms | 3000ms | 998 |
|
||
| 一键答题 | `study_startgame` | 1000ms | 3000ms | 1017 |
|
||
| 领取挂机奖励 | `system_claimhangupreward` | 1000ms | 3000ms | 1050 |
|
||
|
||
**共14个任务,超时统一增加到3000ms(3秒)** ✅
|
||
|
||
---
|
||
|
||
### 2️⃣ 发车相关超时:1000ms → 5000ms
|
||
|
||
| 任务 | 命令 | 调整前 | 调整后 | 位置(行号) |
|
||
|------|------|--------|--------|-------------|
|
||
| 发车 - 查询 | `car_getrolecar` | 1000ms | 5000ms | 1192 |
|
||
| 发车 - 刷新 | `car_refresh` | 1000ms | 5000ms | 1309 |
|
||
| 发车 - 收获 | `car_claim` | 1000ms | 5000ms | 1375 |
|
||
| 发车 - 发送 | `car_send` | 1000ms | 5000ms | 1471 |
|
||
|
||
**共4个发车任务,超时统一增加到5000ms(5秒)** ✅
|
||
|
||
**为什么更长?**
|
||
- 发车操作涉及复杂的服务器逻辑
|
||
- 需要查询、计算、更新多个状态
|
||
- 5秒能提供更充足的处理时间
|
||
|
||
---
|
||
|
||
### 3️⃣ 爬塔超时:2000ms → 5000ms
|
||
|
||
| 任务 | 命令 | 调整前 | 调整后 | 位置(行号) |
|
||
|------|------|--------|--------|-------------|
|
||
| 爬塔 | `fight_starttower` | 2000ms | 5000ms | 1086 |
|
||
|
||
**爬塔涉及战斗计算,5秒更稳定** ✅
|
||
|
||
---
|
||
|
||
### 4️⃣ 保持不变的超时
|
||
|
||
| 任务 | 命令 | 超时时间 | 原因 |
|
||
|------|------|----------|------|
|
||
| 账号激活 | `role_getroleinfo` | 10000ms | 已经足够长,无需调整 |
|
||
| 一键补差(前) | `role_getroleinfo` | 10000ms | 已经足够长,无需调整 |
|
||
| 一键补差(后) | `role_getroleinfo` | 10000ms | 已经足够长,无需调整 |
|
||
|
||
---
|
||
|
||
## 📊 超时配置总览
|
||
|
||
### 按超时时间分类
|
||
|
||
#### ⏱️ 3000ms(3秒)- 通用任务
|
||
```
|
||
✅ friend_batch - 赠送好友金币
|
||
✅ system_buygold - 免费点金
|
||
✅ system_signinreward - 福利签到
|
||
✅ discount_claimreward - 领取每日礼包
|
||
✅ card_claimreward - 领取免费礼包
|
||
✅ genie_buysweep - 领取免费扫荡卷
|
||
✅ arena_startarea - 竞技场
|
||
✅ fight_startlegionboss - 军团BOSS
|
||
✅ bottlehelper_claim - 领取盐罐奖励
|
||
✅ task_claimdailyreward - 领取日常任务奖励
|
||
✅ task_claimweekreward - 领取周常任务奖励
|
||
✅ legion_signin - 俱乐部签到
|
||
✅ study_startgame - 一键答题
|
||
✅ system_claimhangupreward - 领取挂机奖励
|
||
|
||
共14个任务
|
||
```
|
||
|
||
#### ⏱️ 5000ms(5秒)- 发车 + 爬塔
|
||
```
|
||
✅ car_getrolecar - 查询车辆
|
||
✅ car_refresh - 刷新车辆
|
||
✅ car_claim - 收获车辆
|
||
✅ car_send - 发送车辆
|
||
✅ fight_starttower - 爬塔
|
||
|
||
共5个任务
|
||
```
|
||
|
||
#### ⏱️ 10000ms(10秒)- 账号激活
|
||
```
|
||
✅ role_getroleinfo - 获取角色信息(3处)
|
||
|
||
共3处调用
|
||
```
|
||
|
||
---
|
||
|
||
## 📈 预期效果
|
||
|
||
### 超时错误减少
|
||
|
||
**调整前:**
|
||
```
|
||
请求超时错误率:50-80% ❌
|
||
成功率: 20-50% ❌
|
||
```
|
||
|
||
**调整后(预期):**
|
||
```
|
||
请求超时错误率:<10% ✅
|
||
成功率: >85% ✅
|
||
```
|
||
|
||
### 执行时间影响
|
||
|
||
**单个Token(7个任务):**
|
||
```
|
||
调整前:~7秒(但70%失败)
|
||
调整后:~15秒(但85%成功) ✅
|
||
```
|
||
|
||
**10个Token(并发10):**
|
||
```
|
||
调整前:~30秒(但大量失败)
|
||
调整后:~1.5-2分钟(稳定成功) ✅
|
||
```
|
||
|
||
**100个Token(并发10):**
|
||
```
|
||
调整前:~3分钟(但全失败)
|
||
调整后:~15-20分钟(稳定成功) ✅
|
||
```
|
||
|
||
---
|
||
|
||
## 🧪 测试建议
|
||
|
||
### 小规模测试(5-10个token)
|
||
|
||
1. **刷新页面**(Ctrl + Shift + R)
|
||
2. **设置并发数**:5-10
|
||
3. **选择任务**:快速套餐
|
||
4. **观察日志**:
|
||
```
|
||
✅ 是否还有大量超时错误?
|
||
✅ 成功率是否提升到80%以上?
|
||
✅ 浏览器是否稳定?
|
||
```
|
||
|
||
### 预期结果
|
||
|
||
**理想情况:**
|
||
```
|
||
✅ 超时错误:<5%
|
||
✅ 成功率: >90%
|
||
✅ 执行时间:5个token ~1分钟
|
||
```
|
||
|
||
**可接受情况:**
|
||
```
|
||
✅ 超时错误:<15%
|
||
✅ 成功率: >80%
|
||
✅ 执行时间:5个token ~1.5分钟
|
||
```
|
||
|
||
**不可接受(需进一步调整):**
|
||
```
|
||
❌ 超时错误:>30%
|
||
❌ 成功率: <70%
|
||
❌ 仍然大量失败
|
||
```
|
||
|
||
---
|
||
|
||
## 🔧 进一步调整(如需要)
|
||
|
||
### 如果仍有部分超时
|
||
|
||
#### 方案1:再次增加超时
|
||
```javascript
|
||
// 通用任务
|
||
3000ms → 5000ms
|
||
|
||
// 发车相关
|
||
5000ms → 8000ms
|
||
|
||
// 爬塔
|
||
5000ms → 8000ms
|
||
```
|
||
|
||
#### 方案2:降低并发数
|
||
```
|
||
当前并发 → 减半
|
||
10 → 5
|
||
20 → 10
|
||
```
|
||
|
||
#### 方案3:增加任务间隔
|
||
```javascript
|
||
// 当前:400ms
|
||
await new Promise(resolve => setTimeout(resolve, 400))
|
||
|
||
// 调整为:800ms
|
||
await new Promise(resolve => setTimeout(resolve, 800))
|
||
```
|
||
|
||
---
|
||
|
||
## ⚖️ 性能权衡
|
||
|
||
### 速度 vs 稳定性
|
||
|
||
| 配置 | 速度 | 成功率 | 推荐场景 |
|
||
|------|------|--------|---------|
|
||
| **超时1000ms** | ⚡⚡⚡ 极快 | ❌ 20-50% | 低并发 + 稳定网络 |
|
||
| **超时3000ms** | ⚡⚡ 快 | ✅ 80-90% | 中等并发 + 一般网络 ✅ **当前** |
|
||
| **超时5000ms** | ⚡ 中等 | ✅ 90-95% | 高并发 + 不稳定网络 |
|
||
| **超时8000ms** | 🐌 慢 | ✅ 95-98% | 极高并发 + 极差网络 |
|
||
|
||
**建议:** 在稳定性达到要求后,可以逐步减少超时时间来提升速度。
|
||
|
||
---
|
||
|
||
## 📝 版本对比
|
||
|
||
### 各版本配置对比
|
||
|
||
| 版本 | 通用任务超时 | 发车超时 | 爬塔超时 | 效果 |
|
||
|------|-------------|---------|---------|------|
|
||
| v3.11.10 | 1000ms | 1000ms | 2000ms | ❌ 全失败 |
|
||
| v3.11.12 | 1000ms | 1000ms | 2000ms | ⚠️ 大量失败 |
|
||
| **v3.11.13** | **3000ms** | **5000ms** | **5000ms** | ✅ **预期成功** |
|
||
|
||
---
|
||
|
||
## 🎯 成功标准
|
||
|
||
### 最低标准(必须达到)
|
||
```
|
||
✅ 超时错误率 <20%
|
||
✅ 任务成功率 >75%
|
||
✅ 浏览器不崩溃
|
||
✅ 内存 <2GB
|
||
```
|
||
|
||
### 理想标准(期望达到)
|
||
```
|
||
⭐ 超时错误率 <10%
|
||
⭐ 任务成功率 >85%
|
||
⭐ 内存 <1.5GB
|
||
⭐ CPU <30%
|
||
```
|
||
|
||
---
|
||
|
||
## 📋 修改文件清单
|
||
|
||
### 修改的文件
|
||
- `src/stores/batchTaskStore.js`
|
||
- 第591行:`friend_batch` 超时 1000ms → 3000ms
|
||
- 第633行:`system_buygold` 超时 1000ms → 3000ms
|
||
- 第660行:`system_signinreward` 超时 1000ms → 3000ms
|
||
- 第669行:`discount_claimreward` 超时 1000ms → 3000ms
|
||
- 第678行:`card_claimreward` 超时 1000ms → 3000ms
|
||
- 第744行:`genie_buysweep` 超时 1000ms → 3000ms
|
||
- 第773行:`arena_startarea` 超时 1000ms → 3000ms
|
||
- 第816行:`fight_startlegionboss` 超时 1000ms → 3000ms
|
||
- 第873行:`bottlehelper_claim` 超时 1000ms → 3000ms
|
||
- 第901行:`task_claimdailyreward` 超时 1000ms → 3000ms
|
||
- 第910行:`task_claimweekreward` 超时 1000ms → 3000ms
|
||
- 第998行:`legion_signin` 超时 1000ms → 3000ms
|
||
- 第1017行:`study_startgame` 超时 1000ms → 3000ms
|
||
- 第1050行:`system_claimhangupreward` 超时 1000ms → 3000ms
|
||
- 第1086行:`fight_starttower` 超时 2000ms → 5000ms
|
||
- 第1192行:`car_getrolecar` 超时 1000ms → 5000ms
|
||
- 第1309行:`car_refresh` 超时 1000ms → 5000ms
|
||
- 第1375行:`car_claim` 超时 1000ms → 5000ms
|
||
- 第1471行:`car_send` 超时 1000ms → 5000ms
|
||
|
||
**共19处超时调整** ✅
|
||
|
||
---
|
||
|
||
## 🎉 总结
|
||
|
||
此次调整系统性地增加了所有任务的超时时间:
|
||
|
||
✅ **通用任务**:1000ms → 3000ms(14个任务)
|
||
✅ **发车任务**:1000ms → 5000ms(4个任务)
|
||
✅ **爬塔任务**:2000ms → 5000ms(1个任务)
|
||
✅ **保持不变**:role_getroleinfo 维持10000ms(3处)
|
||
|
||
### 核心改进
|
||
- 🎯 **提高稳定性**:减少超时错误
|
||
- 📈 **提升成功率**:预期从20-50%提升到85%以上
|
||
- ⚖️ **合理权衡**:牺牲少量速度换取稳定性
|
||
- 🔍 **日志可见**:ENABLE_BATCH_LOGS = true,方便调试
|
||
|
||
### 后续建议
|
||
1. **小规模测试**:先测5-10个token
|
||
2. **观察日志**:查看超时错误是否减少
|
||
3. **记录成功率**:填写测试数据表
|
||
4. **根据结果调整**:
|
||
- 如果成功率>85%:逐步增加并发
|
||
- 如果仍有超时:进一步增加超时或降低并发
|
||
- 如果稳定后速度可接受:可以考虑略微减少超时
|
||
|
||
---
|
||
|
||
**请立即刷新页面并测试!** 🚀
|
||
|
||
期待您的测试反馈:
|
||
1. 成功率如何?
|
||
2. 还有多少超时错误?
|
||
3. 执行时间可接受吗?
|
||
4. 浏览器是否稳定?
|
||
|
||
我会根据您的反馈继续优化!
|
||
|
||
|
||
|