Files
xyzw_web_helper/MD说明文件夹/失败原因统计持久化显示v3.13.5.7.md
2025-10-17 20:56:50 +08:00

224 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 失败原因统计持久化显示 - v3.13.5.7
## 更新日期
2025-10-12
## 问题描述
在批量任务执行完成后,失败原因统计信息会立即消失,用户无法查看之前执行的失败详情。
## 用户需求
希望失败原因统计能够一直保留显示,直到下一次开始执行新任务之前。这样用户可以:
- 在任务完成后仔细分析失败原因
- 记录和排查问题
- 决定是否需要调整配置后重试
## 解决方案
### 1. 失败原因统计的生命周期
**之前的行为**
- 任务完成后,失败原因统计可能在某些情况下被意外清空
- 用户无法在任务完成后查看失败详情
**新的行为**
- 任务完成后,失败原因统计保持显示
- 只有在开始**新的**批量任务执行时,才清空失败原因统计
- 重试模式下,失败原因统计会被保留并更新
### 2. 代码修改
**文件**`src/stores/batchTaskStore.js`
**修改位置**`startBatchExecution` 函数中的全新开始分支
```javascript
} else {
// 全新开始:重置所有统计
executionStats.value = {
total: targetTokens.length,
success: 0,
failed: 0,
skipped: 0,
startTime: Date.now(),
endTime: null
}
// 🔧 v3.13.5.7: 清空失败原因统计(只在全新开始时清空)
failureReasonsStats.value = {}
if (logConfig.value.batch) console.log('🗑️ 已清空失败原因统计(开始新任务)')
}
```
### 3. 功能特性
#### 3.1 失败原因统计的显示时机
| 场景 | 失败原因统计状态 |
|------|----------------|
| 任务执行中 | 实时更新显示 |
| 任务完成(有失败) | **持续显示** ✅ |
| 任务完成(全部成功) | 保持空状态 |
| 暂停任务 | 保持当前状态 |
| 继续执行 | 保持之前的统计 |
| 重试失败任务 | 保留并更新统计 |
| **开始新任务** | **清空统计** 🗑️ |
| 刷新页面后恢复进度 | 从localStorage恢复 |
#### 3.2 用户体验优化
1. **任务完成后**
- 失败原因统计区域持续显示
- 用户可以截图或记录失败信息
- 可以基于失败原因决定后续操作
2. **开始新任务时**
- 自动清空之前的失败统计
- 从零开始统计新任务的失败情况
- 控制台输出清空日志(如果启用批量日志)
3. **重试模式下**
- 保留原有失败统计
- 实时更新重试后的结果
- 可以对比重试前后的失败情况
### 4. 技术细节
#### 4.1 清空时机(唯一触发点)
```javascript
// 只在全新开始执行任务时清空
if (!continueFromSaved) {
if (isRetry) {
// 重试模式:不清空失败统计
} else {
// 全新开始:清空失败统计 ✅
failureReasonsStats.value = {}
}
}
```
#### 4.2 保留时机
- 任务完成时(`completeBatchExecution`**不清空**
- 清除进度时(`clearSavedProgress`**不清空**
- 暂停任务时(`pauseBatchExecution`**不清空**
- 停止任务时(`stopBatchExecution`**不清空**
#### 4.3 持久化存储
失败原因统计会被保存到 localStorage 中:
```javascript
const progress = {
// ... 其他数据
failureReasons: currentFailureReasons // 保存失败原因统计
}
storageCache.set('batchTaskProgress', progress)
```
恢复时:
```javascript
if (savedProgress.value.failureReasons) {
failureReasonsStats.value = savedProgress.value.failureReasons
console.log(`📊 已恢复失败原因统计`)
}
```
### 5. UI 显示效果
**任务完成后的显示**
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📋 失败原因统计(共 2 个Token失败
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
• sendCar: sendCar(服务器错误: 310060 - 未知错误): 2个Token
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```
**开始新任务时**(如果启用日志):
```
🚀 开始批量执行任务
🗑️ 已清空失败原因统计(开始新任务)
```
### 6. 测试场景
#### 6.1 基础流程
1. 执行批量任务部分Token失败
2. 任务完成后,失败原因统计持续显示 ✅
3. 开始新的批量任务
4. 失败原因统计被清空,从零开始 ✅
#### 6.2 重试流程
1. 执行批量任务部分Token失败
2. 失败原因统计显示
3. 点击"重试失败任务"
4. 失败原因统计保留并实时更新 ✅
#### 6.3 页面刷新
1. 执行批量任务部分Token失败
2. 刷新页面
3. 点击"继续执行"
4. 失败原因统计从localStorage恢复 ✅
### 7. 优势
1. **用户友好**
- 失败信息不会突然消失
- 有足够时间分析和记录问题
2. **问题排查**
- 可以清楚看到哪些操作最容易失败
- 便于定位和修复系统问题
3. **操作决策**
- 基于失败原因决定是否重试
- 可以调整配置后再次执行
4. **性能影响**
- 几乎无性能开销
- 只在开始新任务时清空一次
### 8. 注意事项
1. **失败统计的准确性**
- 统计数据实时收集和更新
- 不会因为清理任务详情而丢失
2. **内存占用**
- 失败原因统计只保存摘要信息
- 内存占用极小(通常 < 1KB
3. **持久化存储**
- 失败统计随进度保存到 localStorage
- 支持页面刷新后恢复
## 相关文件
- `src/stores/batchTaskStore.js` - 批量任务状态管理
- `src/views/DailyTasks.vue` - 批量任务执行界面显示失败统计
## 版本信息
- **版本号**v3.13.5.7
- **更新类型**功能优化
- **影响范围**批量任务执行模块
## 后续优化建议
1. **失败统计导出**
- 支持将失败统计导出为文本或CSV
- 便于长期记录和分析
2. **失败模式识别**
- 自动识别常见失败模式
- 提供针对性的解决建议
3. **历史对比**
- 对比多次执行的失败情况
- 发现系统性问题