feat(desktop): ✨ 实现一些功能
1. 实现任务暂停功能 2. 实现页面的国际化功能 3.优化项目的结构以及BUG 4. 优化系统架构 5. 实现一大堆的功能
This commit is contained in:
183
.trae/documents/plan_20260124_172544.md
Normal file
183
.trae/documents/plan_20260124_172544.md
Normal file
@@ -0,0 +1,183 @@
|
||||
# 任务暂停功能实现计划
|
||||
|
||||
## 1. 实现顺序
|
||||
|
||||
按照Task.md中的优先级顺序,我将按以下步骤实现任务暂停功能:
|
||||
|
||||
### 1.1 数据库模型扩展 (PAUSE-001)
|
||||
- 检查ReadingReflectionTaskBatch实体当前定义
|
||||
- 添加isPaused和pausedAt字段
|
||||
- 运行数据库迁移
|
||||
|
||||
### 1.2 实现暂停/恢复API (PAUSE-002)
|
||||
- 在task.router.ts中添加pauseBatch和resumeBatch方法
|
||||
- 实现暂停和恢复任务的业务逻辑
|
||||
|
||||
### 1.3 任务执行器改进 (PAUSE-003)
|
||||
- 在TaskExecutor中添加任务状态检查
|
||||
- 实现任务执行的中断和恢复机制
|
||||
- 确保任务执行过程中能响应暂停命令
|
||||
|
||||
### 1.4 前端暂停按钮功能 (PAUSE-004)
|
||||
- 为暂停按钮添加点击事件处理
|
||||
- 实现暂停/恢复状态的切换逻辑
|
||||
- 调用后端API实现暂停和恢复操作
|
||||
|
||||
### 1.5 暂停状态视觉反馈 (PAUSE-005)
|
||||
- 添加暂停状态的视觉提示
|
||||
- 实现按钮样式和文字的动态变化
|
||||
- 显示暂停原因和预计恢复时间
|
||||
|
||||
### 1.6 任务队列管理 (PAUSE-006)
|
||||
- 实现任务队列管理系统
|
||||
- 支持暂停/恢复整个队列
|
||||
- 处理队列中任务的状态管理
|
||||
|
||||
### 1.7 持久化暂停状态 (PAUSE-007)
|
||||
- 确保暂停状态能持久化保存
|
||||
- 应用重启后恢复暂停状态
|
||||
- 处理断电等异常情况
|
||||
|
||||
## 2. 技术实现细节
|
||||
|
||||
### 2.1 数据库模型扩展
|
||||
|
||||
```typescript
|
||||
// src/main/db/entities/ReadingReflectionTaskBatch.ts
|
||||
@Entity('reading_reflection_task_batches')
|
||||
export class ReadingReflectionTaskBatch {
|
||||
// 现有字段...
|
||||
|
||||
@Column({ type: 'boolean', default: false })
|
||||
isPaused!: boolean
|
||||
|
||||
@CreateDateColumn({ type: 'datetime', nullable: true })
|
||||
pausedAt!: Date | null
|
||||
}
|
||||
```
|
||||
|
||||
### 2.2 实现暂停/恢复API
|
||||
|
||||
```typescript
|
||||
// src/rpc/router/task.router.ts
|
||||
export const taskRouter = router({
|
||||
// 现有方法...
|
||||
|
||||
/**
|
||||
* 暂停任务批次
|
||||
*/
|
||||
pauseBatch: publicProcedure
|
||||
.input(z.object({ batchId: z.string() }))
|
||||
.mutation(async ({ input }) => {
|
||||
// 暂停任务逻辑
|
||||
}),
|
||||
|
||||
/**
|
||||
* 恢复任务批次
|
||||
*/
|
||||
resumeBatch: publicProcedure
|
||||
.input(z.object({ batchId: z.string() }))
|
||||
.mutation(async ({ input }) => {
|
||||
// 恢复任务逻辑
|
||||
})
|
||||
})
|
||||
```
|
||||
|
||||
### 2.3 任务执行器改进
|
||||
|
||||
```typescript
|
||||
// src/main/manager/taskExecutor.ts
|
||||
export class TaskExecutor {
|
||||
// 现有方法...
|
||||
|
||||
private async checkPauseStatus(taskId: string): Promise<boolean> {
|
||||
// 检查任务是否被暂停
|
||||
}
|
||||
|
||||
private async executeSubTask(taskId: string, subTaskId: string, task: any, index: number, total: number): Promise<void> {
|
||||
// 执行子任务,定期检查暂停状态
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 2.4 前端暂停按钮功能
|
||||
|
||||
```vue
|
||||
<!-- src/renderer/src/pages/task/index.vue -->
|
||||
<template>
|
||||
<a-button
|
||||
size="mini"
|
||||
type="primary"
|
||||
@click="handlePauseResume"
|
||||
>
|
||||
<template #icon>
|
||||
<pause v-if="!isPaused" theme="outline" size="12" />
|
||||
<play v-else theme="outline" size="12" />
|
||||
</template>
|
||||
{{ isPaused ? '恢复队列' : '暂停队列' }}
|
||||
</a-button>
|
||||
</template>
|
||||
```
|
||||
|
||||
## 3. 预期效果
|
||||
|
||||
1. **暂停功能**:用户可以通过暂停按钮暂停正在执行的任务
|
||||
2. **恢复功能**:用户可以恢复被暂停的任务
|
||||
3. **状态反馈**:界面会显示当前任务的暂停状态
|
||||
4. **持久化**:任务暂停状态会被持久化保存
|
||||
5. **队列管理**:支持暂停/恢复整个任务队列
|
||||
|
||||
## 4. 测试计划
|
||||
|
||||
1. **功能测试**:
|
||||
- 验证暂停按钮能正常触发暂停操作
|
||||
- 验证恢复按钮能正常恢复任务
|
||||
- 验证暂停状态能正确显示
|
||||
|
||||
2. **边界测试**:
|
||||
- 测试同时暂停多个任务
|
||||
- 测试应用重启后暂停状态是否保持
|
||||
- 测试暂停状态下的任务进度更新
|
||||
|
||||
3. **性能测试**:
|
||||
- 测试大量任务时的暂停/恢复响应时间
|
||||
- 验证暂停状态下的系统资源占用
|
||||
|
||||
## 5. 风险评估
|
||||
|
||||
1. **任务中断风险**:任务执行过程中中断可能导致数据不一致
|
||||
2. **性能影响**:频繁检查暂停状态可能影响性能
|
||||
3. **并发冲突**:多个任务同时暂停/恢复可能导致冲突
|
||||
4. **持久化失败**:断电等异常情况可能导致暂停状态丢失
|
||||
|
||||
## 6. 解决方案
|
||||
|
||||
1. **任务中断处理**:实现事务机制,确保任务中断时数据一致性
|
||||
2. **性能优化**:合理设置暂停状态检查频率,避免频繁查询数据库
|
||||
3. **并发控制**:使用锁机制确保任务状态更新的原子性
|
||||
4. **持久化保障**:使用事务确保暂停状态能可靠保存
|
||||
|
||||
## 7. 代码规范
|
||||
|
||||
- 遵循项目现有的代码风格和命名规范
|
||||
- 确保类型安全,使用TypeScript严格模式
|
||||
- 添加必要的注释和文档
|
||||
- 编写单元测试确保功能正确性
|
||||
|
||||
## 8. 交付标准
|
||||
|
||||
1. 所有暂停功能按优先级实现完成
|
||||
2. 代码通过TypeScript类型检查
|
||||
3. 没有语法错误和运行时错误
|
||||
4. 功能测试通过
|
||||
5. 代码符合项目的质量标准
|
||||
|
||||
## 9. 后续优化
|
||||
|
||||
1. 添加任务暂停的原因记录
|
||||
2. 实现自动恢复功能
|
||||
3. 支持基于时间的暂停计划
|
||||
4. 添加暂停状态的日志记录
|
||||
5. 优化暂停状态的查询性能
|
||||
|
||||
现在我将按照这个计划开始实现任务暂停功能,首先检查数据库模型。
|
||||
Reference in New Issue
Block a user