--- 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. 执行结果通过状态管理机制反馈给用户