724 lines
25 KiB
Markdown
724 lines
25 KiB
Markdown
# 天风任务模块
|
||
|
||
## 项目概述
|
||
|
||
天风任务模块是AMR(自主移动机器人)调度系统的核心组件之一,用于管理和监控机器人任务的全生命周期。该模块提供了低代码配置工具,使用户能够通过可视化界面设计和配置复杂的机器人任务流程,无需编写大量代码。系统支持任务版本控制、流程编辑、测试执行和源代码生成等功能,大幅提高了机器人任务配置的效率和灵活性。
|
||
|
||
## 项目架构
|
||
|
||
天风任务模块采用分层架构设计,遵循关注点分离原则,各层次职责明确,便于维护和扩展:
|
||
|
||
### 1. 架构层次
|
||
|
||
- **表现层(API层)**:处理HTTP请求和响应,提供RESTful API接口
|
||
- **业务逻辑层(Service层)**:实现核心业务逻辑,处理任务和工作流的创建、执行和管理
|
||
- **代理层(Agents层)**:提供智能代理服务,支持任务自动化和优化(已设计,尚未实现)
|
||
- **领域层(Core层)**:定义核心领域模型和业务规则,包含工作流引擎和组件系统
|
||
- **数据层(Data层)**:提供数据模型定义和数据访问功能,支持任务、流程、组件等数据的持久化
|
||
- **智能服务层**:提供向量化和向量存储服务,支持知识检索和智能决策(已设计,尚未实现)
|
||
- **基础设施层**:提供数据持久化、日志记录、配置管理等基础服务
|
||
|
||
### 2. 设计模式
|
||
|
||
- **工厂模式**:用于组件的创建和注册
|
||
- **策略模式**:用于实现不同类型组件的执行逻辑
|
||
- **观察者模式**:用于任务状态变更通知
|
||
- **命令模式**:用于任务执行和撤销操作
|
||
- **组合模式**:用于构建组件树和工作流结构
|
||
- **仓储模式**:用于数据访问和持久化
|
||
|
||
### 3. 系统架构图
|
||
|
||
```
|
||
+-------------------+
|
||
| 用户界面 |
|
||
+--------+----------+
|
||
|
|
||
v
|
||
+------------------+ +----------+---------+
|
||
| | | |
|
||
| 外部知识库 +------------->+ API层 |
|
||
| | | |
|
||
+------------------+ +----+------+--------+
|
||
| |
|
||
| |
|
||
+----------------------------+ |
|
||
| |
|
||
v v
|
||
+----------+---------+ +---------+----------+
|
||
| | | |
|
||
| Agent系统 |<------------>| 业务服务层 |
|
||
| (包含LLM功能) | | |
|
||
+----+---------------+ +--------+-----------+
|
||
| |
|
||
| |
|
||
| v
|
||
| +--------+-----------+
|
||
| | |
|
||
| | 工作流引擎 |
|
||
| | |
|
||
| +--------+-----------+
|
||
| |
|
||
| |
|
||
| v
|
||
| +--------+-----------+
|
||
| | |
|
||
+----------------------------->+ 组件系统 |
|
||
| | |
|
||
| +--------+-----------+
|
||
| |
|
||
v v
|
||
+----+---------------+ +--------+-----------+
|
||
| | | |
|
||
| 智能服务层 | | 外部系统/设备 |
|
||
| (向量化和向量存储) | | |
|
||
+----+---------------+ +--------------------+
|
||
|
|
||
|
|
||
v
|
||
+----+---+
|
||
| |
|
||
|向量数据库|
|
||
| |
|
||
+--------+
|
||
```
|
||
|
||
> **注意**:架构图中的Agent系统、外部知识库、智能服务层和向量数据库部分已完成设计,但尚未实现。这些组件将在后续版本中逐步开发和集成。
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
tianfeng_task/
|
||
├── api/ # API接口定义
|
||
│ ├── task_api.py # 任务相关API
|
||
│ ├── workflow_api.py # 工作流相关API
|
||
│ ├── component_api.py # 组件相关API
|
||
│ ├── task_instance_api.py # 任务实例相关API
|
||
│ ├── common_params_api.py # 通用参数API
|
||
│ └── models/ # API模型定义
|
||
├── services/ # 业务服务层
|
||
│ ├── task_service.py # 任务服务
|
||
│ ├── workflow_service.py # 工作流服务
|
||
│ ├── component_service.py # 组件服务
|
||
│ └── editor_service.py # 编辑器服务
|
||
├── agents/ # 智能代理层(已设计,尚未实现)
|
||
│ ├── base_agent.py # 代理基类
|
||
│ ├── task_agent.py # 任务代理
|
||
│ ├── llm/ # 大语言模型集成
|
||
│ ├── prompts/ # 提示词模板
|
||
│ ├── tools/ # 代理工具集
|
||
│ └── teams/ # 代理团队协作
|
||
├── components/ # 组件实现
|
||
│ ├── base_components.py # 基础组件
|
||
│ ├── flow_components.py # 流程控制组件
|
||
│ ├── http_components.py # HTTP请求组件
|
||
│ ├── robot_components.py # 机器人调度组件
|
||
│ ├── script_components.py # 脚本组件
|
||
│ ├── site_components.py # 库位组件
|
||
│ ├── subtask_components.py # 子任务组件
|
||
│ ├── task_components.py # 任务组件
|
||
│ └── device_components.py # 设备组件
|
||
├── core/ # 核心功能模块
|
||
│ ├── component.py # 组件基类定义
|
||
│ ├── context.py # 执行上下文
|
||
│ ├── exceptions.py # 异常定义
|
||
│ └── workflow.py # 工作流引擎
|
||
├── data/ # 数据存储
|
||
│ ├── models/ # 数据模型定义
|
||
│ │ ├── base.py # 基础模型
|
||
│ │ ├── task.py # 任务相关模型
|
||
│ │ ├── task_flow.py # 任务流程模型
|
||
│ │ ├── task_variable.py # 任务变量模型
|
||
│ │ ├── task_edit_history.py # 编辑历史模型
|
||
│ │ ├── component.py # 组件模型
|
||
│ │ ├── robot.py # 机器人模型
|
||
│ │ ├── storage.py # 库位模型
|
||
│ │ ├── device.py # 设备模型
|
||
│ │ └── user_operation.py # 用户操作日志模型
|
||
│ ├── session.py # 数据库会话管理
|
||
│ └── repositories/ # 数据仓储实现
|
||
├── intelligent/ # 智能服务层(已设计,尚未实现)
|
||
│ ├── vectorization/ # 向量化服务
|
||
│ ├── retrieval/ # 知识检索服务
|
||
│ ├── embedding/ # 嵌入模型服务
|
||
│ └── vector_store/ # 向量存储服务
|
||
├── migrations/ # 数据库迁移
|
||
│ ├── versions/ # 迁移版本
|
||
│ ├── env.py # 迁移环境配置
|
||
│ ├── script.py.mako # 迁移脚本模板
|
||
│ └── alembic.ini # Alembic配置
|
||
├── scripts/ # 脚本工具
|
||
│ ├── generate_migration.py # 生成迁移脚本
|
||
│ └── run_migration.py # 执行迁移脚本
|
||
├── utils/ # 工具函数
|
||
│ ├── logger.py # 日志工具
|
||
│ ├── validators.py # 数据验证工具
|
||
│ └── helpers.py # 辅助函数
|
||
├── config/ # 配置文件
|
||
│ ├── database.py # 数据库配置
|
||
│ ├── component_registry.py # 组件注册配置
|
||
│ └── settings.py # 应用设置
|
||
├── logs/ # 日志文件
|
||
├── tests/ # 测试代码
|
||
│ ├── unit/ # 单元测试
|
||
│ ├── integration/ # 集成测试
|
||
│ └── fixtures/ # 测试数据
|
||
├── app.py # 应用入口
|
||
├── Dockerfile # Docker构建文件
|
||
├── docker-compose.yml # Docker Compose配置
|
||
├── .env.example # 环境变量示例
|
||
├── .dockerignore # Docker忽略文件
|
||
└── requirements.txt # 依赖包列表
|
||
```
|
||
|
||
## 核心功能
|
||
|
||
### 1. 任务管理
|
||
|
||
- **任务创建**:支持创建普通任务和定时任务
|
||
- **任务监控**:实时监控任务执行状态和进度
|
||
- **任务操作**:支持启动、暂停、取消、重试等操作
|
||
- **任务历史**:记录任务执行历史和结果
|
||
- **版本控制**:支持任务版本管理,可以回滚到历史版本
|
||
- **任务测试**:支持在测试环境中执行任务,验证任务配置
|
||
|
||
### 2. 任务编辑器
|
||
|
||
天风任务模块提供了强大的可视化编辑器,支持以下功能:
|
||
|
||
- **流程图设计**:通过拖拽方式设计任务流程图
|
||
- **属性配置**:配置组件和连接的属性
|
||
- **变量管理**:定义和管理任务执行过程中的变量
|
||
- **撤销/重做**:支持编辑操作的撤销和重做
|
||
- **源代码生成**:自动生成任务执行的源代码
|
||
- **版本备份**:支持任务配置的版本备份和恢复
|
||
|
||
### 3. 组件库
|
||
|
||
天风任务模块提供了丰富的组件库,用户可以通过拖拽组件和配置参数的方式设计复杂的任务流程:
|
||
|
||
- **子任务组件**:支持任务的模块化和复用
|
||
- **脚本组件**:支持编写自定义JavaScript脚本
|
||
- **HTTP请求组件**:支持与外部系统进行通信
|
||
- **任务组件**:提供任务数据管理和状态控制功能
|
||
- **流程组件**:提供条件判断、循环、并行执行等流程控制功能
|
||
- **基础组件**:提供数据验证、ID生成、时间处理等基础功能
|
||
- **库位组件**:提供库位管理和操作功能
|
||
- **机器人调度组件**:提供机器人选择、控制和状态监控功能
|
||
- **设备组件**:提供与外部设备通信的功能
|
||
|
||
### 4. 智能代理系统(已设计,尚未实现)
|
||
|
||
- **任务代理**:自动分析和优化任务流程
|
||
- **LLM集成**:集成大语言模型,提供智能决策支持
|
||
- **代理工具**:提供丰富的工具集,支持代理执行各种操作
|
||
- **团队协作**:支持多代理协作完成复杂任务
|
||
- **知识检索**:从外部知识库中检索相关信息,辅助决策
|
||
|
||
### 5. 智能服务层(已设计,尚未实现)
|
||
|
||
- **向量化服务**:将文本、图像等数据转换为向量表示
|
||
- **知识检索**:基于语义相似度进行知识检索
|
||
- **嵌入模型**:提供多种嵌入模型,支持不同类型数据的向量化
|
||
- **向量存储**:高效存储和检索向量数据
|
||
|
||
### 6. 工作流引擎
|
||
|
||
- **流程执行**:解析和执行任务流程图
|
||
- **上下文管理**:管理任务执行过程中的变量和状态
|
||
- **错误处理**:提供异常捕获和处理机制
|
||
- **并行执行**:支持多分支并行执行
|
||
- **动态加载**:支持动态加载和执行组件
|
||
|
||
### 7. 数据模型
|
||
|
||
系统提供了完善的数据模型,支持任务管理的各个方面:
|
||
|
||
- **任务模型**:存储任务基本信息和配置
|
||
- **任务版本**:管理任务的不同版本
|
||
- **任务记录**:记录任务的执行情况
|
||
- **任务流程节点**:存储流程图中的节点信息
|
||
- **任务流程连接**:存储流程图中的连接信息
|
||
- **任务变量定义**:管理任务中使用的变量
|
||
- **任务编辑历史**:记录编辑操作,支持撤销/重做
|
||
- **任务备份**:存储任务的备份数据
|
||
|
||
## 执行业务流程
|
||
|
||
### 系统启动流程
|
||
|
||
1. 应用启动(app.py)
|
||
2. 加载配置信息(config模块)
|
||
3. 初始化日志系统(utils.logger)
|
||
4. 初始化数据库连接(data.session)
|
||
5. 注册所有组件(config.component_registry)
|
||
6. 注册API路由(api模块)
|
||
7. 启动HTTP服务(uvicorn)
|
||
|
||
### 任务创建流程
|
||
|
||
1. 用户在天风任务主页面点击"定义新任务"按钮
|
||
2. 前端发送创建任务请求到API层(/api/tasks)
|
||
3. API层调用任务服务(task_service.py)创建任务记录
|
||
4. 系统创建任务并返回任务ID
|
||
5. 前端跳转到任务编辑页面
|
||
6. 用户通过拖拽组件设计任务流程
|
||
7. 前端发送保存流程请求到API层(/api/workflows)
|
||
8. API层调用工作流服务(workflow_service.py)保存流程配置
|
||
9. 系统将流程配置保存到数据库,创建新版本
|
||
|
||
### 任务编辑流程
|
||
|
||
1. 用户打开任务编辑页面
|
||
2. 系统加载任务的最新版本和流程图数据
|
||
3. 用户通过拖拽组件和连接设计流程图
|
||
4. 用户配置组件属性和变量
|
||
5. 系统记录每一步编辑操作,支持撤销/重做
|
||
6. 用户点击保存按钮,系统创建新版本
|
||
7. 用户可以点击测试按钮,在测试环境中执行任务
|
||
8. 用户可以点击生成源码按钮,系统生成任务执行代码
|
||
|
||
### 任务执行流程
|
||
|
||
1. 用户在任务列表中选择任务并点击"执行"按钮
|
||
2. 前端发送执行任务请求到API层(/api/tasks/{id}/execute)
|
||
3. API层调用任务服务(task_service.py)创建任务记录
|
||
4. 任务服务加载任务配置和工作流定义
|
||
5. 任务服务初始化执行上下文(context.py)
|
||
6. 任务服务调用工作流引擎(workflow.py)执行任务
|
||
7. 工作流引擎解析任务流程图并按顺序执行各组件
|
||
8. 组件执行结果存储在上下文中,供后续组件使用
|
||
9. 系统实时更新任务状态和进度
|
||
10. 任务执行完成后,系统记录执行结果和日志
|
||
|
||
### 智能任务执行流程(已设计,尚未实现)
|
||
|
||
1. 用户在任务列表中选择任务并点击"智能执行"按钮
|
||
2. 前端发送智能执行任务请求到API层
|
||
3. API层调用Agent系统进行任务分析和优化
|
||
4. Agent系统从外部知识库检索相关知识
|
||
5. Agent系统基于LLM和检索到的知识生成执行计划
|
||
6. Agent系统调用业务服务层执行优化后的任务
|
||
7. 业务服务层调用工作流引擎执行任务
|
||
8. 执行过程中,Agent系统持续监控任务状态
|
||
9. 遇到异常情况时,Agent系统自动调整执行策略
|
||
10. 任务执行完成后,Agent系统生成执行报告和优化建议
|
||
|
||
## 交互方式
|
||
|
||
天风任务模块提供多种交互方式,满足不同场景的需求:
|
||
|
||
### 1. 用户界面交互
|
||
|
||
- **任务列表界面**:
|
||
- 展示所有任务及其状态
|
||
- 提供任务筛选、搜索和排序功能
|
||
- 支持任务的创建、编辑、删除、执行等操作
|
||
- 显示任务执行状态和进度
|
||
|
||
- **任务编辑界面**:
|
||
- 提供可视化的流程设计工具
|
||
- 左侧组件面板:展示可用组件
|
||
- 中央流程图编辑区:通过拖拽设计任务流程
|
||
- 右侧属性面板:配置组件参数
|
||
- 顶部工具栏:保存、运行、测试、撤销、重做等操作
|
||
|
||
- **任务监控界面**:
|
||
- 实时显示任务执行状态和进度
|
||
- 展示任务执行日志和变量值
|
||
- 提供任务暂停、取消、重试等操作
|
||
|
||
## 技术栈
|
||
|
||
- **后端**:FastAPI (Python)
|
||
- **数据库**:SQLAlchemy ORM,支持MySQL、PostgreSQL等
|
||
- **前端**:React + Ant Design(低代码编辑器)
|
||
- **API文档**:Swagger UI(自动生成)
|
||
- **工作流引擎**:自研基于DAG的工作流引擎
|
||
- **组件系统**:可扩展的组件注册和执行系统
|
||
- **数据迁移**:Alembic
|
||
- **智能代理**:基于大语言模型的智能代理系统(已设计,尚未实现)
|
||
- **向量数据库**:支持高效的向量存储和检索(已设计,尚未实现)
|
||
- **嵌入模型**:支持文本、图像等数据的向量化(已设计,尚未实现)
|
||
|
||
## 部署说明
|
||
|
||
### 环境要求
|
||
|
||
- Python 3.11+
|
||
- 数据库(MySQL/PostgreSQL)
|
||
- Node.js 14+(前端开发)
|
||
|
||
### 详细运行方法
|
||
|
||
#### 方法一:使用Docker运行(推荐)
|
||
|
||
Docker是最简单的部署方式,可以避免环境配置问题。
|
||
|
||
##### 1. 构建并运行Docker镜像
|
||
|
||
```bash
|
||
# 克隆代码仓库
|
||
git clone http://192.168.1.2:8418/jzw/tianfeng_task_modules.git
|
||
cd tianfeng_task
|
||
|
||
# 构建Docker镜像
|
||
docker build -t tianfeng-task:latest .
|
||
|
||
# 运行Docker容器
|
||
docker run -d -p 8000:8000 --name tianfeng-task-container tianfeng-task:latest
|
||
```
|
||
|
||
##### 2. 使用Docker Compose运行(包含数据库和缓存)
|
||
|
||
```bash
|
||
# 克隆代码仓库
|
||
git clone http://192.168.1.2:8418/jzw/tianfeng_task_modules.git
|
||
cd tianfeng_task
|
||
|
||
# 使用Docker Compose构建并启动所有服务
|
||
docker-compose up -d
|
||
```
|
||
|
||
##### 3. 验证服务是否正常运行
|
||
|
||
```bash
|
||
# 查看容器状态
|
||
docker ps
|
||
|
||
# 或者使用Docker Compose查看
|
||
docker-compose ps
|
||
|
||
# 查看应用日志
|
||
docker logs tianfeng-task-container
|
||
# 或者
|
||
docker-compose logs app
|
||
```
|
||
|
||
##### 4. 停止和删除容器
|
||
|
||
```bash
|
||
# 停止容器
|
||
docker stop tianfeng-task-container
|
||
docker rm tianfeng-task-container
|
||
|
||
# 或者使用Docker Compose
|
||
docker-compose down
|
||
```
|
||
|
||
#### 方法二:本地运行(不同操作系统)
|
||
|
||
##### 前提条件
|
||
- 安装Conda(Miniconda或Anaconda)
|
||
- 安装Git
|
||
- 安装数据库(MySQL或PostgreSQL)
|
||
|
||
##### Windows系统
|
||
|
||
```bash
|
||
# 1. 克隆代码仓库
|
||
git clone http://192.168.1.2:8418/jzw/tianfeng_task_modules.git
|
||
cd tianfeng_task
|
||
|
||
# 2. 创建并激活Conda环境 推荐使用3.11
|
||
conda create -n pytf python=3.11
|
||
conda activate pytf
|
||
|
||
# 3. 安装依赖
|
||
pip install -r requirements.txt
|
||
|
||
# 4. 配置数据库连接
|
||
# 编辑 config/database.py 文件,设置正确的数据库连接信息
|
||
|
||
# 5. 启动应用
|
||
python app.py
|
||
```
|
||
|
||
### 数据库配置说明
|
||
|
||
在运行应用前,需要修改`config/database.py`文件中的数据库配置,将默认的数据库连接信息替换为您自己的本地或云上的MySQL数据库:
|
||
|
||
```python
|
||
# 数据库连接配置
|
||
DB_CONFIG = ConfigDict(
|
||
default=dict(
|
||
dialect='mysql',
|
||
driver='pymysql',
|
||
username='your_username', # 修改为您的数据库用户名
|
||
password='your_password', # 修改为您的数据库密码
|
||
host='your_host', # 修改为您的数据库主机地址,本地通常为localhost或127.0.0.1,云数据库使用对应的连接地址
|
||
port=3306, # 修改为您的数据库端口,默认MySQL为3306
|
||
database='tianfeng_task', # 数据库名称,可以保持不变或修改为您想使用的数据库名
|
||
charset='utf8mb4'
|
||
),
|
||
test=dict(
|
||
dialect='sqlite',
|
||
database=':memory:'
|
||
)
|
||
)
|
||
```
|
||
|
||
如果您使用的是云数据库(如阿里云RDS、AWS RDS等),请确保:
|
||
1. 数据库已创建并可以访问
|
||
2. 数据库用户有足够的权限(至少需要CREATE、ALTER、SELECT、INSERT、UPDATE、DELETE权限)
|
||
3. 数据库服务器的防火墙允许从您的应用服务器访问
|
||
|
||
您也可以通过环境变量来设置数据库连接信息,这样就不需要修改源代码:
|
||
|
||
```bash
|
||
# Windows
|
||
set TIANFENG_ENV=default
|
||
set DB_HOST=your_host
|
||
set DB_PORT=3306
|
||
set DB_USER=your_username
|
||
set DB_PASSWORD=your_password
|
||
set DB_NAME=tianfeng_task
|
||
|
||
# macOS/Linux
|
||
export TIANFENG_ENV=default
|
||
export DB_HOST=your_host
|
||
export DB_PORT=3306
|
||
export DB_USER=your_username
|
||
export DB_PASSWORD=your_password
|
||
export DB_NAME=tianfeng_task
|
||
```
|
||
|
||
系统启动时会自动检查数据库是否存在,如果不存在会自动创建数据库和所需的表结构。
|
||
|
||
##### macOS系统
|
||
|
||
```bash
|
||
# 1. 克隆代码仓库
|
||
git clone http://192.168.1.2:8418/jzw/tianfeng_task_modules.git
|
||
cd tianfeng_task
|
||
|
||
# 2. 创建并激活Conda环境
|
||
conda create -n pytf python=3.11
|
||
conda activate pytf
|
||
|
||
# 3. 安装依赖
|
||
pip install -r requirements.txt
|
||
|
||
# 4. 配置数据库连接
|
||
# 编辑 config/database.py 文件,设置正确的数据库连接信息
|
||
|
||
# 5. 启动应用
|
||
python app.py
|
||
```
|
||
|
||
##### Linux系统
|
||
|
||
```bash
|
||
# 1. 克隆代码仓库
|
||
git clone http://192.168.1.2:8418/jzw/tianfeng_task_modules.git
|
||
cd tianfeng_task
|
||
|
||
# 2. 创建并激活Conda环境
|
||
conda create -n pytf python=3.11
|
||
conda activate pytf
|
||
|
||
# 3. 安装依赖
|
||
pip install -r requirements.txt
|
||
|
||
# 4. 配置数据库连接
|
||
# 编辑 config/database.py 文件,设置正确的数据库连接信息
|
||
|
||
# 5. 启动应用
|
||
python app.py
|
||
```
|
||
|
||
#### 方法三:使用虚拟环境(不使用Conda)(不推荐)
|
||
|
||
**注意:此方法不推荐使用**,因为项目依赖复杂,使用Conda可以更好地管理依赖关系和解决潜在的兼容性问题。此外,某些依赖可能需要特定的编译环境,Conda能更好地处理这些情况。如果您仍然希望使用此方法,请按照以下步骤操作:
|
||
|
||
##### Windows系统
|
||
|
||
```bash
|
||
# 1. 克隆代码仓库
|
||
git clone http://192.168.1.2:8418/jzw/tianfeng_task_modules.git
|
||
cd tianfeng_task
|
||
|
||
# 2. 创建并激活虚拟环境
|
||
python -m venv venv
|
||
.\venv\Scripts\activate
|
||
|
||
# 3. 安装依赖
|
||
pip install -r requirements.txt
|
||
|
||
# 4. 配置数据库连接
|
||
# 编辑 config/database.py 文件
|
||
|
||
# 5. 启动应用
|
||
python app.py
|
||
```
|
||
|
||
##### macOS/Linux系统
|
||
|
||
```bash
|
||
# 1. 克隆代码仓库
|
||
git clone http://192.168.1.2:8418/jzw/tianfeng_task_modules.git
|
||
cd tianfeng_task
|
||
|
||
# 2. 创建并激活虚拟环境
|
||
python -m venv venv
|
||
source venv/bin/activate
|
||
|
||
# 3. 安装依赖
|
||
pip install -r requirements.txt
|
||
|
||
# 4. 配置数据库连接
|
||
# 编辑 config/database.py 文件
|
||
|
||
# 5. 启动应用
|
||
python app.py
|
||
```
|
||
|
||
### 安装步骤
|
||
|
||
1. 克隆代码库
|
||
2. 安装依赖:`pip install -r requirements.txt`
|
||
3. 配置数据库连接:修改`config/database.py`
|
||
4. 启动应用:`python app.py`
|
||
|
||
## 使用示例
|
||
|
||
### 创建简单任务
|
||
|
||
1. 进入天风任务主页面
|
||
2. 点击"定义新任务"按钮
|
||
3. 输入任务名称"测试任务",选择"普通任务"类型
|
||
4. 在编辑页面拖入"选择执行机器人"组件
|
||
5. 配置机器人选择参数
|
||
6. 拖入"机器人通用动作"组件,配置目标站点
|
||
7. 连接组件,形成执行流程
|
||
8. 保存任务并执行
|
||
|
||
### 使用版本控制
|
||
|
||
1. 打开现有任务的编辑页面
|
||
2. 修改任务流程或组件配置
|
||
3. 点击"保存"按钮,系统自动创建新版本
|
||
4. 在版本历史中可以查看所有历史版本
|
||
5. 可以选择任意历史版本进行查看或恢复
|
||
|
||
### 使用撤销/重做功能
|
||
|
||
1. 在编辑页面进行操作(如添加节点、移动节点等)
|
||
2. 如需撤销操作,点击工具栏中的"撤销"按钮
|
||
3. 如需重做已撤销的操作,点击"重做"按钮
|
||
4. 系统会记录编辑会话中的所有操作历史
|
||
|
||
## 常见问题
|
||
|
||
1. **任务执行失败怎么办?**
|
||
- 查看任务执行日志,定位失败原因
|
||
- 在测试环境中验证任务配置
|
||
- 修改任务配置,解决问题后重试
|
||
|
||
2. **如何调试复杂任务?**
|
||
- 使用测试功能验证任务配置
|
||
- 查看执行日志和变量值
|
||
- 使用条件断点和单步执行
|
||
|
||
3. **如何管理大量任务?**
|
||
- 使用任务模板功能创建可复用的任务模板
|
||
- 使用子任务功能将复杂任务拆分为多个子任务
|
||
- 使用标签和分类功能组织任务
|
||
|
||
## 联系方式
|
||
|
||
如有问题或建议,请联系系统管理员或开发团队。
|
||
|
||
# Docker部署说明
|
||
|
||
## 使用Docker部署天风任务模块
|
||
|
||
本项目支持使用Docker进行部署,以下是部署步骤:
|
||
|
||
### 前提条件
|
||
|
||
- 安装Docker和Docker Compose
|
||
- 确保端口8000、3306和6379未被占用
|
||
|
||
### 部署步骤
|
||
|
||
1. 克隆代码仓库
|
||
|
||
```bash
|
||
git clone http://192.168.1.2:8418/jzw/tianfeng_task_modules.git
|
||
cd tianfeng_task
|
||
```
|
||
|
||
2. 使用Docker Compose构建并启动服务
|
||
|
||
```bash
|
||
docker-compose up -d
|
||
```
|
||
|
||
这将启动三个容器:
|
||
- tianfeng-task: 应用服务
|
||
- tianfeng-mysql: MySQL数据库
|
||
- tianfeng-redis: Redis缓存
|
||
|
||
3. 验证服务是否正常运行
|
||
|
||
```bash
|
||
docker-compose ps
|
||
```
|
||
|
||
4. 访问API文档
|
||
|
||
打开浏览器,访问 http://localhost:8000/docs 查看API文档。
|
||
|
||
### 环境变量配置
|
||
|
||
可以通过修改`docker-compose.yml`文件中的环境变量来配置应用:
|
||
|
||
```yaml
|
||
environment:
|
||
- TIANFENG_ENV=default # 环境名称
|
||
- DEBUG=false # 是否开启调试模式
|
||
- DB_HOST=db # 数据库主机
|
||
- DB_PORT=3306 # 数据库端口
|
||
- DB_USER=root # 数据库用户名
|
||
- DB_PASSWORD=password # 数据库密码
|
||
- DB_NAME=tianfeng_task # 数据库名称
|
||
- REDIS_HOST=redis # Redis主机
|
||
- REDIS_PORT=6379 # Redis端口
|
||
- REDIS_DB=0 # Redis数据库索引
|
||
```
|
||
|
||
### 单独构建Docker镜像
|
||
|
||
如果需要单独构建Docker镜像,可以使用以下命令:
|
||
|
||
```bash
|
||
docker build -t tianfeng-task:latest .
|
||
```
|
||
|
||
### 停止服务
|
||
|
||
```bash
|
||
docker-compose down
|
||
```
|
||
|
||
如果需要同时删除数据卷(会删除所有数据):
|
||
|
||
```bash
|
||
docker-compose down -v
|
||
```
|
||
|
||
### 查看日志
|
||
|
||
```bash
|
||
# 查看所有服务的日志
|
||
docker-compose logs
|
||
|
||
# 查看特定服务的日志
|
||
docker-compose logs app
|
||
docker-compose logs db
|
||
docker-compose logs redis
|
||
|
||
# 实时查看日志
|
||
docker-compose logs -f app
|
||
``` |