---
description:
globs:
alwaysApply: false
---
# VWED任务模块 - 数据模型

## 数据模型概述

VWED任务模块的数据模型层定义了系统中的各种实体和它们之间的关系。主要数据模型包括任务定义、任务记录、任务块记录、数据缓存和任务模板等。

## 核心数据模型

### 任务定义模型 (TaskDef)

任务定义模型存储任务的基本信息和配置，是系统中最基础的数据实体。

**核心字段**：
- `id`: 任务定义ID
- `name`: 任务名称
- `description`: 任务描述
- `task_type`: 任务类型
- `config`: 任务配置（JSON）
- `status`: 任务状态
- `version`: 任务版本号

**相关文件**: [data/models/taskdef.py](mdc:data/models/taskdef.py)

### 任务记录模型 (TaskRecord)

任务记录模型记录任务的执行历史和状态，每次任务执行都会生成一条任务记录。

**核心字段**:
- `id`: 记录ID
- `task_def_id`: 关联的任务定义ID
- `status`: 执行状态
- `result`: 执行结果
- `start_time`: 开始时间
- `end_time`: 结束时间
- `error_message`: 错误信息

**相关文件**: [data/models/taskrecord.py](mdc:data/models/taskrecord.py)

### 任务块记录模型 (BlockRecord)

任务块记录模型记录任务中各个执行块的执行情况，提供更细粒度的执行信息。

**核心字段**:
- `id`: 记录ID
- `task_record_id`: 关联的任务记录ID
- `block_id`: 块ID
- `block_type`: 块类型
- `status`: 执行状态
- `input_data`: 输入数据
- `output_data`: 输出数据
- `start_time`: 开始时间
- `end_time`: 结束时间

**相关文件**: [data/models/blockrecord.py](mdc:data/models/blockrecord.py)

### 数据缓存模型 (DataCache)

数据缓存模型用于存储任务执行过程中的临时数据和中间结果。

**核心字段**:
- `id`: 缓存ID
- `task_record_id`: 关联的任务记录ID
- `key`: 缓存键
- `value`: 缓存值
- `type`: 数据类型
- `expire_time`: 过期时间

**相关文件**: [data/models/datacache.py](mdc:data/models/datacache.py)

### 任务模板模型 (TaskTemplate)

任务模板模型存储预定义的任务模板，用户可以基于模板快速创建任务。

**核心字段**:
- `id`: 模板ID
- `name`: 模板名称
- `description`: 模板描述
- `config`: 模板配置（JSON）
- `version`: 模板版本号
- `task_type`: 任务类型

**相关文件**: [data/models/tasktemplate.py](mdc:data/models/tasktemplate.py)

## 数据关系图

```
TaskDef (任务定义)
  ↓ 1:n
TaskRecord (任务记录)
  ↓ 1:n
BlockRecord (任务块记录)

TaskDef ← 基于 ← TaskTemplate (任务模板)

TaskRecord
  ↓ 1:n
DataCache (数据缓存)
```

## 数据库会话管理

系统使用SQLAlchemy作为ORM框架，支持同步和异步两种数据库访问方式。

**相关文件**: [data/session.py](mdc:data/session.py)

## 缓存系统

系统使用Redis作为分布式缓存，提供高性能的数据缓存和共享。

**相关文件**: [data/cache.py](mdc:data/cache.py)
