---
description: 
globs: 
alwaysApply: false
---
# VWED任务模块 - 系统架构

## 架构概览

VWED任务模块采用分层架构设计，共分为五层：

1. **客户端层**：包括任务管理界面、任务创建界面、任务编辑界面和任务监控与执行界面
2. **业务逻辑层**：包括任务定义模块、任务执行模块、组件管理模块、参数配置模块和模板配置模块
3. **数据访问层**：包括任务定义DAO、任务记录DAO、任务块记录DAO、数据缓存DAO和模板DAO
4. **数据存储层**：包括vwed_taskdef、vwed_taskrecord、vwed_blockrecord、vwed_datacache和vwed_tasktemplate等数据表
5. **集成服务层**：包括AGV控制接口、站点管理接口、设备接口、外部系统接口和认证服务

## 核心模块

### 任务调度系统

任务调度系统是VWED任务模块的核心，负责任务的分配、执行和管理。系统采用增强版任务调度器设计，主要组件包括：

- **EnhancedTaskScheduler**：主调度器，协调各组件工作
- **PriorityQueueManager**：优先级队列管理，实现多级队列
- **WorkerManager**：工作线程管理和监控
- **TaskPersistenceManager**：任务队列持久化，故障恢复
- **PeriodicTaskManager**：高级定时任务管理

相关代码：[services/enhanced_scheduler](mdc:services/enhanced_scheduler)

### 业务逻辑服务

业务逻辑服务层包含多个关键服务：

- **TaskService**：[services/task_service.py](mdc:services/task_service.py) - 任务管理服务
- **TaskEditService**：[services/task_edit_service.py](mdc:services/task_edit_service.py) - 任务编辑服务
- **TemplateService**：[services/template_service.py](mdc:services/template_service.py) - 模板管理服务
- **ScriptService**：[services/script_service.py](mdc:services/script_service.py) - 脚本管理服务

### API接口层

API接口层通过FastAPI框架实现，主要包括以下路由模块：

- **任务API**：[routes/task_api.py](mdc:routes/task_api.py) - 任务管理相关接口
- **任务编辑API**：[routes/task_edit_api.py](mdc:routes/task_edit_api.py) - 任务编辑相关接口
- **模板API**：[routes/template_api.py](mdc:routes/template_api.py) - 模板管理相关接口
- **脚本API**：[routes/script_api.py](mdc:routes/script_api.py) - 脚本管理相关接口
- **数据库API**：[routes/database.py](mdc:routes/database.py) - 数据库操作相关接口

### 数据模型层

数据模型层定义了系统中的各种数据实体：

- **TaskDef**：[data/models/taskdef.py](mdc:data/models/taskdef.py) - 任务定义模型
- **TaskRecord**：[data/models/taskrecord.py](mdc:data/models/taskrecord.py) - 任务记录模型
- **BlockRecord**：[data/models/blockrecord.py](mdc:data/models/blockrecord.py) - 任务块记录模型
- **DataCache**：[data/models/datacache.py](mdc:data/models/datacache.py) - 数据缓存模型
- **TaskTemplate**：[data/models/tasktemplate.py](mdc:data/models/tasktemplate.py) - 任务模板模型

## 系统流程

1. 用户通过客户端界面创建或编辑任务
2. API接口层接收请求并转发给相应的业务逻辑服务
3. 业务逻辑服务处理请求，操作数据模型，并提交任务至调度系统
4. 调度系统根据任务优先级和资源情况安排任务执行
5. 执行结果通过状态管理机制反馈给用户

