# misc_test **Repository Path**: toophy/misc_test ## Basic Information - **Project Name**: misc_test - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-21 - **Last Updated**: 2025-07-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 流水线系统 一个基于C++17的现代化流水线系统,支持插件化架构和动态节点管理。 ## 项目概述 本系统采用模块化设计,包含以下核心组件: - **master**: 主程序,负责系统启动、配置管理和插件加载 - **manager**: 核心管理器,提供流水线、节点和插件的统一管理 - **node1**: 基础节点插件,提供打印、延迟、条件、循环、转换等基础功能 - **node2**: 高级节点插件,提供文件操作、HTTP客户端、数据库操作、邮件发送等功能 ## 系统架构 ``` ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ master │ │ manager │ │ node1 │ │ (主程序) │◄──►│ (核心管理) │◄──►│ (基础节点) │ └─────────────┘ └─────────────┘ └─────────────┘ │ │ │ │ │ │ ▼ ▼ ▼ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ node2 │ │ 流水线配置 │ │ 日志系统 │ │ (高级节点) │ │ (JSON格式) │ │ (spdlog) │ └─────────────┘ └─────────────┘ └─────────────┘ ``` ## 功能特性 ### 核心功能 - **插件化架构**: 支持动态加载和卸载节点插件 - **流水线管理**: 支持复杂的流水线配置和执行 - **节点系统**: 提供丰富的节点类型和自定义节点支持 - **配置管理**: 基于JSON的灵活配置系统 - **日志系统**: 统一的日志管理和国际化支持 ### 节点类型 #### 基础节点 (node1) - **PrintNode**: 打印节点,支持不同日志级别的消息输出 - **DelayNode**: 延迟节点,支持毫秒级延迟控制 - **ConditionNode**: 条件节点,支持条件判断和分支控制 - **LoopNode**: 循环节点,支持迭代控制和循环逻辑 - **TransformNode**: 转换节点,支持数据格式转换和处理 #### 高级节点 (node2) - **FileReaderNode**: 文件读取节点,支持多种编码格式 - **FileWriterNode**: 文件写入节点,支持追加模式 - **HttpClientNode**: HTTP客户端节点,支持多种HTTP方法 - **DatabaseNode**: 数据库操作节点,支持SQL查询 - **EmailSenderNode**: 邮件发送节点,支持SMTP邮件发送 ## 系统要求 - **操作系统**: Windows 10+, Linux, macOS - **编译器**: 支持C++17的编译器 (MSVC, GCC, Clang) - **构建工具**: CMake 3.20+ - **包管理器**: vcpkg - **依赖库**: nlohmann-json, fmt, spdlog, GTest ## 快速开始 ### 1. 环境准备 确保已安装以下工具: - Visual Studio 2019+ (Windows) 或 GCC/Clang (Linux/macOS) - CMake 3.20+ - vcpkg ### 2. 克隆项目 ```bash git clone https://gitee.com/toophy/pipeline-system.git cd pipeline-system ``` ### 3. 构建项目 ```powershell # 构建所有项目 .\scripts\build_all.ps1 # 或单独构建某个项目 cd manager .\scripts\build.ps1 cd .. ``` ### 4. 运行测试 ```powershell # 运行所有测试 .\scripts\test_all.ps1 # 或单独测试某个项目 cd manager .\scripts\test.ps1 cd .. ``` ### 5. 部署系统 ```powershell # 部署所有项目 .\scripts\deploy.ps1 ``` ### 6. 启动系统 ```bash # 进入部署目录 cd deploy/bin # 启动系统 ./start.bat # Windows ./start.sh # Linux/macOS ``` ## 项目结构 ``` pipeline-system/ ├── master/ # 主程序 │ ├── include/ # 头文件 │ ├── src/ # 源文件 │ ├── tests/ # 测试文件 │ ├── scripts/ # 构建脚本 │ ├── CMakeLists.txt # CMake配置 │ └── vcpkg.json # 依赖配置 ├── manager/ # 核心管理器 │ ├── include/ # 头文件 │ ├── src/ # 源文件 │ ├── tests/ # 测试文件 │ ├── scripts/ # 构建脚本 │ ├── CMakeLists.txt # CMake配置 │ └── vcpkg.json # 依赖配置 ├── node1/ # 基础节点插件 │ ├── include/ # 头文件 │ ├── src/ # 源文件 │ ├── tests/ # 测试文件 │ ├── scripts/ # 构建脚本 │ ├── CMakeLists.txt # CMake配置 │ └── vcpkg.json # 依赖配置 ├── node2/ # 高级节点插件 │ ├── include/ # 头文件 │ ├── src/ # 源文件 │ ├── tests/ # 测试文件 │ ├── scripts/ # 构建脚本 │ ├── CMakeLists.txt # CMake配置 │ └── vcpkg.json # 依赖配置 ├── scripts/ # 整体脚本 │ ├── build_all.ps1 # 整体构建脚本 │ ├── test_all.ps1 # 整体测试脚本 │ └── deploy.ps1 # 整体部署脚本 ├── docs/ # 文档 └── README.md # 项目说明 ``` ## 配置说明 ### 流水线配置 流水线配置使用JSON格式,支持以下结构: ```json { "pipeline_name": "示例流水线", "version": 1, "nodes": [ { "type": "PrintNode", "name": "print_hello", "config": { "message": "Hello World", "level": "info" } }, { "type": "DelayNode", "name": "delay_1s", "config": { "delay_ms": 1000 } } ] } ``` ### 系统配置 系统配置文件支持以下选项: ```json { "log_level": "info", "log_file": "pipeline.log", "plugins": [ { "name": "node1", "path": "lib/node1.dll", "alias": "基础节点" }, { "name": "node2", "path": "lib/node2.dll", "alias": "高级节点" } ] } ``` ## 开发指南 ### 添加新节点 1. 在对应的插件项目中创建新的节点类 2. 继承自 `manager::INode` 接口 3. 实现必要的虚函数 4. 在插件入口函数中注册新节点 5. 添加相应的单元测试 ### 创建新插件 1. 创建新的插件项目目录 2. 配置 `vcpkg.json` 和 `CMakeLists.txt` 3. 实现插件入口和出口函数 4. 创建节点类并注册 5. 添加构建和测试脚本 ### 编码规范 - 使用UTF-8编码保存所有源文件 - 注释使用中文 - 遵循现代C++17标准 - 使用智能指针管理内存 - 所有字符串使用UTF-8编码 ## 测试 ### 单元测试 每个项目都包含完整的单元测试: ```powershell # 运行所有单元测试 .\scripts\test_all.ps1 ``` ### 集成测试 系统提供集成测试验证各组件间的协作: ```powershell # 运行集成测试 cd manager .\scripts\test.ps1 cd .. ``` ## 部署 ### 自动部署 使用部署脚本自动部署所有组件: ```powershell .\scripts\deploy.ps1 ``` ### 手动部署 1. 构建所有项目 2. 复制可执行文件和动态库到部署目录 3. 复制配置文件和依赖库 4. 创建启动脚本 ## 故障排除 ### 常见问题 1. **编译错误**: 确保使用C++17标准和正确的编译器 2. **链接错误**: 检查vcpkg依赖是否正确安装 3. **运行时错误**: 检查动态库路径和依赖库 4. **编码问题**: 确保所有文件使用UTF-8编码 ### 日志分析 系统提供详细的日志输出,可通过日志文件分析问题: ```bash tail -f pipeline.log ``` ## 贡献指南 1. Fork 项目 2. 创建功能分支 3. 提交更改 4. 推送到分支 5. 创建 Pull Request ## 许可证 本项目采用 MIT 许可证。 ## 联系方式 - 项目主页: https://gitee.com/toophy/pipeline-system - 问题反馈: https://gitee.com/toophy/pipeline-system/issues - 文档: https://gitee.com/toophy/pipeline-system/wikis ## 更新日志 ### v1.0.0 (2024-01-01) - 初始版本发布 - 支持基础流水线功能 - 提供node1和node2两个插件 - 完整的构建和测试系统