# Cc_ETL **Repository Path**: xzjsccz/Cc_ETL ## Basic Information - **Project Name**: Cc_ETL - **Description**: Cc-ETL 是一款基于 XXL-Job 深度改造的可视化定时任务调度平台,专为数据集成和任务编排而设计。平台通过可视化拖拽界面实现复杂任务流程的编排,支持多种任务类型,并深度集成 DataX 实现高效的数据同步能力。 - **Primary Language**: Java - **License**: MIT - **Default Branch**: release - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 57 - **Forks**: 29 - **Created**: 2024-11-02 - **Last Updated**: 2026-01-03 ## Categories & Tags **Categories**: task-schedule **Tags**: xxl-job, SpringBoot, Java ## README # 🚦 Cc-ETL

Java Version Spring Boot Version Vue Version License Platform

基于 XXL-Job 深度改造的可视化任务调度平台

支持拖拽式任务编排、DataX 数据同步、多端管理界面

--- ## 📋 目录 - 📖 [项目简介](#-项目简介) - 🔗 [项目地址](#-项目地址) - ✨ [核心特性](#-核心特性) - 📋 [使用场景](#-使用场景) - 🖼️ [项目展示](#-项目展示) - 💻 [PC端功能详细介绍](#-pc端功能详细介绍) ⭐ - 🚀 [快速开始](#-快速开始) - 🧩 [模块说明](#-模块说明) - 🛠️ [技术栈](#-技术栈) - 📚 [项目文档](#-项目文档) - ❓ [常见问题](#-常见问题) - 🤝 [贡献指南](#-贡献指南) - 📞 [技术支持](#-技术支持) - 🙏 [致谢](#-致谢) - 📄 [许可证](#-license) --- ## 📖 项目简介 Cc-ETL 是一款基于 XXL-Job 深度改造的可视化定时任务调度平台,专为数据集成和任务编排而设计。平台通过可视化拖拽界面实现复杂任务流程的编排,支持多种任务类型,并深度集成 DataX 实现高效的数据同步能力。 **目前项目还在测试阶段,还有很多功能未开发,还存在很多优化修复的地方,想学习可以下载看看** ### 🎯 项目定位 - **数据集成平台**:专业的数据管道工具,支持多数据源间的全量/增量同步 - **任务调度中心**:提供企业级的任务编排与调度能力,支持复杂的工作流 - **可视化运维工具**:PC界面设计,提供直观的操作体验 - **企业级解决方案**:支持高可用集群部署,满足生产环境严苛要求 ### ⭐ 项目优势 1. **🚀 零中间件依赖**:仅需 MySQL 数据库即可完整部署,极大降低运维复杂度 2. **🎨 可视化编排**:拖拽式流程设计,无需编程基础即可构建复杂任务链 3. **💻 多端协同**:Web 端轻量管理 + PC 端深度运维,满足不同使用场景 4. **🔧 功能完备**:支持 **Bean**、**API**、**SQL**、**Shell**、**DataX**、**C#** 等多种任务类型 5. **⚡ 高性能设计**:基于 XXL-Job 内核,支持海量任务并发处理 6. **🔒 高可用保障**:支持集群部署、故障转移、负载均衡 ### 🏆 项目亮点 - ✅ **开源项目**:基于 MIT 协议,完全开源免费 - ✅ **社区活跃**:持续更新迭代,积极响应用户反馈 ### 📚 相关文档 - [GUI功能测试文档](doc/测试文档/GUI功能测试文档.md) - 完整的功能测试用例和测试结果
测试文档
> 📝 **提示**:PC端基于 JavaFX 开发,功能完善且经过全面测试。详细的功能测试文档包含 489 个测试用例,覆盖所有核心功能模块。 --- ### 核心组件 #### 🎯 Admin 管理端 (cc-job-admin) - **任务注册中心**:负责任务和执行器的注册管理 - **调度中心**:处理任务调度逻辑和触发规则 - **监控中心**:提供任务执行状态监控和统计 - **Web 管理界面**:可视化任务配置和管理界面 #### ⚙️ Executor任务编排执行器 (cc-job-executor-compose) - **任务执行引擎**:任务编排执行器 - **任务调度算法**:使用拓扑排序和图算法解决任务依赖 #### ⚙️ Executor 执行器 (cc-job-executor) - **任务执行引擎**:实际执行各类任务的核心组件 - **多任务支持**:Bean 方法、HTTP API、SQL 脚本、Shell 命令、DataX 同步 - **状态管理**:任务执行状态跟踪和结果回调 - **日志收集**:执行过程日志收集和存储 #### 🌐 前端界面 - ~~**Web 端**:基于 Vue 3 + Element Plus 的现代化 Web 界面~~(已移除,所有功能全部迁移到PC端) - **PC 端**:基于 JavaFX 的桌面应用程序,提供离线使用能力 ### 数据流向 1. **任务配置** → Web/PC 端配置任务 → 存储到 MySQL 数据库 2. **任务调度** → Admin 根据 cron 表达式触发任务 → 分发到 Executor 3. **任务执行** → Executor 执行具体任务逻辑 → 返回执行结果 4. **状态监控** → 执行状态实时反馈 → Web/PC 端展示执行进度 --- ## 📋 使用场景 ### 🏢 企业应用场景 #### 1. **数据仓库 ETL 流程** ``` 数据源同步 → 数据清洗 → 数据转换 → 加载到数据仓库 ``` - 支持 MySQL、Oracle、PostgreSQL 等主流数据库 - 可视化配置复杂的 ETL 流程 - 支持全量和增量同步模式 #### 2. **业务数据处理** ``` 用户行为收集 → 数据分析 → 报表生成 → 邮件推送 ``` - 定时执行数据统计任务 - 生成各类业务报表 - 通过邮件或 webhook 推送结果 #### 3. **系统运维自动化** ``` 日志清理 → 备份检查 → 健康监控 → 告警通知 ``` - 自动化执行系统维护任务 - 监控系统运行状态 - 异常情况及时告警 #### 4. **API 数据集成** ``` 第三方 API 调用 → 数据解析 → 本地存储 → 数据同步 ``` - 定时拉取第三方系统数据 - API 数据集成和同步 - 支持 RESTful 和 SOAP 接口 ### 🎓 学习与开发场景 #### 1. **任务调度学习** - 学习分布式任务调度原理 - 掌握 cron 表达式使用 - 理解任务编排和依赖管理 #### 2. **数据集成实践** - 学习 DataX 数据同步工具 - 掌握多数据源集成技术 - 实践 ETL 流程设计 #### 3. **全栈开发体验** - 前后端分离开发模式 - 桌面应用开发经验 - 企业级应用架构设计 --- ## 🔗 项目地址 - **GitHub**:https://github.com/xiaozhaoCcz/CC_ETL - **Gitee**:https://gitee.com/xzjsccz/Cc_ETL --- ## ✨ 核心特性 ### 🎨 可视化任务编排 - **拖拽式设计**:直观的流程图设计界面,支持节点拖拽和连接 - 支持节点自由拖拽移动 - 支持框选多节点批量操作 - 支持节点连接器可视化连接 - 支持连线实时预览和跟随 - **复杂工作流**:支持串行、并行、条件分支等多种执行模式 - 智能拓扑排序解决任务依赖 - 支持循环依赖检测 - 支持任务组嵌套管理 - **依赖管理**:智能的任务依赖分析和拓扑排序 - 自动分析任务执行顺序 - 可视化展示依赖关系 - 支持动态添加/删除依赖 - **实时预览**:任务执行流程实时可视化展示 - 任务执行状态实时变色 - 小地图实时显示画布布局 - 日志面板实时输出执行日志 - 运行状态指示器实时反馈 ### 🔄 任务调度引擎 - **兼容 XXL-Job**:完全兼容 XXL-Job 所有原生功能 - **Cron 表达式**:支持标准的 Cron 定时任务配置 - **高级调度**:支持固定速率、固定延迟等多种调度策略 - **动态任务**:支持动态添加、修改、删除任务 ### 🔗 数据集成能力 **⚠️目前PC端还无法使用,正在更新中** - **DataX 集成**:深度集成阿里巴巴 DataX 数据同步工具 - **多数据源支持**: - 🗄️ **MySQL**:全量/增量同步,表结构映射 - 🏢 **Oracle**:企业级数据库同步支持 - 🐘 **PostgreSQL**:开源数据库集成 - 更多数据源持续扩展中... - **同步模式**:全量同步、增量同步、条件同步 - **性能优化**:多线程并行处理,断点续传 ### 🛠️ 多种任务类型 - **🅱️ Bean 任务**:执行 Spring 容器中的 Bean 方法 - 支持自定义 JobHandler - 支持任务参数传递 - 支持依赖注入 - **🌐 API 任务**:HTTP/HTTPS 接口调用,支持 RESTful - 自动填充 JobHandler 为 `runApiHandler` - 支持 GET、POST、PUT、DELETE 等方法 - 支持请求头和请求体配置 - **🗃️ SQL 任务**:执行 SQL 脚本和存储过程 - 支持多数据源选择 - 支持参数化查询 - 支持事务控制 - **🐚 Shell 任务**:通过 GLUE(Shell) 模式执行 - 支持系统命令调用 - 支持 Shell 脚本执行 - 跨平台支持 - **🔄 DataX 任务**:专业数据同步任务 - 深度集成阿里巴巴 DataX - 支持全量/增量同步 - 支持多数据源同步 - **💻 GLUE 模式**:支持多种编程语言在线编写 - **GLUE(Java)**:在线编写 Java 代码,集成 GLUE IDE - **GLUE(Python)**:执行 Python 脚本,支持 Python 3.6+ - **GLUE(Shell)**:执行 Shell 脚本和系统命令 - **GLUE(PHP)**:执行 PHP 脚本,支持 PHP 7.0+ - **GLUE(Nodejs)**:执行 Node.js 脚本,支持 npm 包 - **GLUE(PowerShell)**:执行 PowerShell 脚本,Windows 优化 - **GLUE(C#)**:执行 C# 脚本,.NET 生态支持**(😄新增)** ### 📊 监控与运维 - **实时监控**:任务执行状态实时跟踪 - **执行日志**:详细的执行过程日志记录 - **性能统计**:任务执行时间、成功率等指标统计 - **告警通知**:支持邮件、webhook 等告警方式 ### 🖥️ 多端管理界面 #### 🌐 ~~Web 端~~(迁移到PC端) - **技术栈**:Vue 3 + TypeScript + Element Plus - **现代化界面**:响应式设计,适配各种屏幕尺寸 - **轻量管理**:快速访问,适合日常任务管理 - **实时监控**:任务执行状态实时展示 #### 💻 PC 端(重点推荐) - **技术栈**:JavaFX 17+,原生桌面应用体验 - **离线使用**:支持离线操作,不依赖浏览器 - **功能完备**:489个测试用例覆盖,功能稳定可靠 - **可视化编排**:拖拽式任务编排,直观易用 - **多面板布局**:树形视图、画布、小地图、日志面板协同工作 - **10种运行模式**:支持 BEAN、API、SQL、GLUE(Java/Shell/Python/PHP/Nodejs/PowerShell/C#) 等 - **高级配置**:路由策略、阻塞处理、失败策略、超时控制、重试机制 - **撤销重做**:完整的操作历史管理 - **快捷键支持**:丰富的键盘快捷键,提升操作效率 - **面板管理**:支持面板展开/收起/弹出为独立窗口 - **实时监控**:任务执行状态实时反馈,日志实时输出 ### 🏢 企业级特性 - **高可用部署**:支持集群模式,自动故障转移 - **权限管理**:任务和用户的权限控制体系 - **审计日志**:完整的操作审计和日志记录 - **扩展性**:插件化架构,支持自定义扩展 --- ## 🚀 发展规划 ### ✅ 已完成功能 #### 核心功能 - ✅ **任务编排引擎重构**:提升性能和可维护性 - ✅ **可视化任务编排**:拖拽式界面设计 - ✅ PC端完整实现:489个测试用例覆盖 - ✅ 10种运行模式支持(BEAN、API、SQL、7种GLUE模式) - ✅ 高级配置完整支持(路由策略、阻塞处理、失败策略等) - ✅ 撤销重做系统完善 - ✅ 快捷键支持丰富 - ✅ **多任务类型支持**:Bean、API、SQL、Shell、DataX - ✅ **DataX 数据同步**:集成专业数据同步工具 - ✅ **双端界面支持**:Web 端 + PC 端 - ✅ PC端功能完备:10大核心模块,81.4%测试通过率 - ✅ 多面板布局:树形视图、画布、小地图、日志面板 - ✅ 面板管理:支持展开/收起/弹出为独立窗口 #### 技术优化 - ✅ **Spring Boot 3.0**:升级到最新稳定版本 - ✅ **前端技术栈升级**:Vue 3 + TypeScript - ✅ **数据库设计优化**:高效的数据存储结构 ### 🔄 正在进行 #### 界面优化 - 🔄 **调度中心页面迁移**:功能逐步迁移到 PC 端(**进行中...**) - 🔄 **用户体验提升**:界面交互和视觉设计优化 #### 功能增强 - 🔄 **权限管理系统**:用户和任务权限控制 - 🔄 **条件节点功能**:支持任务流程条件判断(🔴重点) ### 📋 未来规划 #### 数据源扩展 - 📋 **更多数据源支持**:Redis、MongoDB、ES 等 - 📋 **云数据库集成**:阿里云、腾讯云、AWS 等 - 📋 **大数据平台**:Hadoop、Spark 生态集成 #### 高级特性 - 📋 **工作流引擎升级**:支持更复杂的流程控制 - 📋 **监控告警增强**:多渠道告警和智能监控 - 📋 **性能优化**:高并发场景优化和缓存机制 #### 生态建设 - 📋 **插件市场**:支持第三方插件扩展 - 📋 **API 生态**:完善 REST API 和 SDK - 📋 **多语言支持**:国际化支持 #### 文档与社区 - 📋 **完善 API 文档**:详细的接口文档和示例 - 📋 **最佳实践指南**:使用案例和解决方案 - 📋 **视频教程**:操作指南和教学视频 - 📋 **开发者文档**:架构设计和开发指南 --- ## 🖼️ 项目展示 ### 🎯 界面预览 #### PC 端桌面应用
PC端界面
**PC端核心功能亮点:** - 🎨 **可视化任务编排**:拖拽式节点设计,直观易用 - 📊 **多面板协同**:树形视图、画布、小地图、日志面板一体化 - ⚡ **10种运行模式**:支持 BEAN、API、SQL 及 7 种 GLUE 模式 - 🔧 **高级配置**:路由策略、阻塞处理、失败策略等完整配置 - ⏪ **撤销重做**:完整的操作历史管理 - ⌨️ **快捷键支持**:丰富的键盘快捷键提升效率 - 🗺️ **小地图导航**:快速定位和导航大型任务组 - 📝 **实时日志**:任务执行日志实时输出,支持搜索和过滤 ### ⚙️ 核心功能展示 #### 1. 任务列表
任务列表 任务编辑
#### 2. 数据源配置
数据源列表 数据源配置
#### 3.任务列表
任务列表 api任务 shell任务 java任务 c#任务
### 📋 使用流程 1. **🏗️ 环境搭建** - 配置数据库和后端服务 - 启动 Admin 管理端和 Executor 执行器 2. **⚙️ 系统配置** - 在 Web 端配置执行器连接信息 - 设置数据源和连接参数 3. **🎨 任务设计** - 创建任务分区和任务组 - 使用拖拽界面设计任务流程 - 配置任务参数和依赖关系 4. **▶️ 执行监控** - 手动或定时触发任务执行 - 实时查看执行日志和状态 - 监控任务执行进度和结果 ### 🎬 演示视频 > 📹 **项目演示视频**:详细的操作演示和功能介绍 > > [在线观看](https://www.bilibili.com/video/BV1TBCkBzEex/?spm_id_from=333.1387.upload.video_card.click) --- ## 💻 PC端功能详细介绍 PC端是基于 JavaFX 开发的桌面应用程序,提供完整的任务编排可视化界面。经过全面的功能测试,覆盖 **489个测试用例**,功能完善且稳定可靠。 ### 📦 核心功能模块 #### 1. 🛠️ 顶部工具栏 (TopToolBar) **文件操作** - ✅ **新建任务**:快速创建新任务节点 - ✅ **新建任务组**:创建任务组容器 - ✅ **打开文件**:打开已有任务配置 - ✅ **保存操作**:保存当前任务组配置到后端 - ✅ **智能提示**:未选择任务组时自动提示 **编辑操作** - ✅ **撤销/重做**:支持操作历史管理,最多支持多步撤销 - ✅ **框选模式**:支持矩形框选多个节点 - ✅ **横向布局**:一键横向对齐多个节点 - ✅ **纵向布局**:一键纵向对齐多个节点 - ✅ **按钮状态**:根据操作历史自动启用/禁用按钮 **视图操作** - ✅ **放大/缩小**:支持 25% - 300% 缩放范围 - ✅ **适应画布**:一键恢复到 100% 缩放 - ✅ **实时缩放显示**:工具栏实时显示当前缩放比例 - ✅ **缩放边界控制**:防止过度缩放 **运行控制** - ✅ **运行任务组**:一键启动任务组执行 - ✅ **停止任务**:支持任务执行中停止 - ✅ **运行状态指示**:按钮状态实时反映任务运行状态 - ✅ **多任务组运行**:支持同时运行多个任务组 **用户信息** - ✅ **用户信息显示**:显示用户名、用户ID和头像 - ✅ **用户操作菜单**:点击弹出用户相关操作 - ✅ **登录状态管理**:自动识别登录状态 #### 2. 🎨 画布交互 (NodeCanvas) **节点操作** - ✅ **右键创建节点**:在画布空白处右键快速创建节点 - ✅ **节点拖拽移动**:支持单个和多个节点同时移动 - ✅ **节点选择**:支持单击选择、框选多选 - ✅ **节点连接器**:鼠标悬停显示上下左右四个连接点 - ✅ **连线实时预览**:拖拽连接时显示虚线预览 - ✅ **连线跟随**:节点移动时连线自动跟随 - ✅ **自连接限制**:禁止节点连接到自身 - ✅ **节点删除**:支持删除节点及级联删除连线 **节点右键菜单** - ✅ **编辑节点**:打开节点配置对话框 - ✅ **复制节点**:复制节点到剪贴板 - ✅ **查看详情**:查看节点详细信息 - ✅ **更改颜色**:自定义节点背景色 - ✅ **禁用/启用节点**:临时禁用节点执行 - ✅ **删除节点**:删除节点及关联连线 **画布右键菜单** - ✅ **添加节点**:快速创建新节点 - ✅ **运行任务组**:快速启动任务执行 - ✅ **粘贴节点**:从剪贴板粘贴节点 - ✅ **主题切换**:切换画布背景主题 **框选功能** - ✅ **框选模式切换**:工具栏按钮一键切换 - ✅ **矩形框选**:拖拽选择矩形区域内的节点 - ✅ **视觉反馈**:框选区域显示蓝色半透明选择框 - ✅ **多节点操作**:框选后支持批量移动、删除、对齐 **对齐布局** - ✅ **横向对齐**:多个节点在X轴方向均匀排列 - ✅ **纵向对齐**:多个节点在Y轴方向均匀排列 - ✅ **对齐间距**:自动计算合适的节点间距 - ✅ **撤销对齐**:支持撤销对齐操作 #### 3. 🌳 树形视图 (TaskTree) **层级结构展示** - ✅ **分区节点**:显示所有任务分区(Partition) - ✅ **任务组节点**:显示分区下的任务组 - ✅ **任务节点**:显示任务组内的所有任务节点 - ✅ **边节点**:显示任务组内的连线关系 - ✅ **展开/折叠**:支持节点展开和折叠操作 - ✅ **空状态提示**:空任务组显示友好提示 **节点交互** - ✅ **选择任务组**:点击任务组加载到画布 - ✅ **选择任务节点**:点击任务节点在画布中高亮 - ✅ **同步选择**:画布选择与树形视图双向同步 - ✅ **选中样式**:清晰的选中状态视觉反馈 **右键菜单** - ✅ **分区菜单**:新建任务组、刷新等操作 - ✅ **任务组菜单**:编辑、新建节点、删除等操作 - ✅ **任务节点菜单**:编辑、删除、刷新等操作 **搜索功能** - ✅ **实时搜索**:输入关键字实时过滤 - ✅ **模糊匹配**:支持部分关键字匹配 - ✅ **搜索范围**:支持搜索任务组和节点 - ✅ **清除搜索**:一键恢复显示所有节点 **运行状态指示** - ✅ **运行中指示**:运行中的任务组显示闪烁动画 - ✅ **完成状态**:任务完成后显示绿色指示 - ✅ **动画效果**:流畅的状态切换动画 #### 4. 📑 任务导航栏 (TaskNavigationBar) **标签页管理** - ✅ **自动创建标签**:选择任务组自动创建标签页 - ✅ **标签显示**:标签显示任务组名称 - ✅ **重复打开处理**:重复打开同一任务组切换到已有标签 - ✅ **标签切换**:点击标签快速切换任务组视图 - ✅ **标签关闭**:支持关闭标签页 - ✅ **关闭后处理**:关闭当前标签自动切换到前一个 **运行状态显示** - ✅ **运行中标识**:运行中的任务组标签显示指示器 - ✅ **运行动画**:指示器有闪烁动画效果 - ✅ **多任务运行**:多个任务组同时运行时分别显示状态 #### 5. 📊 日志面板 (LogPanel) **日志输出** - ✅ **多级别日志**:支持信息、警告、错误、成功等日志级别 - ✅ **颜色区分**:不同级别日志使用不同颜色显示 - ✅ **时间戳**:每条日志包含完整时间戳 - ✅ **格式统一**:统一的日志格式 `[时间] [级别] 消息内容` **日志滚动** - ✅ **自动滚动**:新日志产生时自动滚动到底部 - ✅ **手动滚动**:用户手动滚动时停止自动滚动 - ✅ **快速定位**:支持滚动到顶部/底部按钮 - ✅ **性能优化**:大量日志时保持流畅滚动 **搜索功能** - ✅ **关键字搜索**:输入关键字高亮匹配的日志 - ✅ **实时搜索**:输入过程中实时过滤(防抖300ms) - ✅ **大小写不敏感**:搜索不区分大小写 - ✅ **无匹配提示**:无匹配结果时显示友好提示 **多标签页** - ✅ **全局标签**:默认显示全局日志标签页 - ✅ **任务组标签**:每个任务组有独立的日志标签页 - ✅ **日志隔离**:不同任务组的日志分别显示 - ✅ **标签切换**:点击标签切换查看不同日志 **日志管理** - ✅ **清空日志**:支持清空当前标签页日志 - ✅ **清空确认**:清空前弹出确认对话框 - ✅ **复制日志**:支持复制选中日志内容 - ✅ **日志计数**:实时显示日志总数和搜索结果数 #### 6. 🗺️ 小地图 (MiniMap) **缩略图显示** - ✅ **画布缩略图**:实时显示画布整体布局 - ✅ **节点缩略**:小地图显示所有节点的缩略矩形 - ✅ **连线缩略**:显示节点间的连线关系 - ✅ **实时更新**:画布变化时小地图自动更新(节流200ms) - ✅ **比例映射**:小地图与画布比例约为 1:10 **视口导航** - ✅ **视口矩形**:红色矩形框显示当前可视区域 - ✅ **视口同步**:画布滚动时视口矩形同步移动 - ✅ **点击跳转**:点击小地图任意位置跳转到对应画布区域 - ✅ **拖拽视口**:拖动视口矩形移动画布视图 - ✅ **视口样式**:红色边框,透明填充,2px线宽 **自适应大小** - ✅ **宽度自适应**:根据左侧面板宽度自动调整 - ✅ **高度自适应**:根据窗口高度自动调整 - ✅ **最小尺寸**:保持最小 150x150px 显示 **弹出窗口** - ✅ **独立窗口**:支持弹出为独立窗口显示 - ✅ **实时同步**:弹出窗口与主窗口实时同步 - ✅ **导航功能**:弹出窗口中的操作同步到主窗口画布 #### 7. 🎛️ 面板管理 **面板展开/收起** - ✅ **树形视图面板**:支持关闭和恢复显示 - ✅ **小地图面板**:支持独立关闭和恢复 - ✅ **日志面板**:支持关闭和恢复显示 - ✅ **折叠侧边栏**:关闭面板后显示折叠侧边栏和恢复按钮 - ✅ **分割线调整**:面板关闭/恢复时自动调整分割线位置 **面板弹出功能** - ✅ **树形视图弹出**:弹出为独立窗口(400x500px) - ✅ **小地图弹出**:弹出为独立窗口显示 - ✅ **日志面板弹出**:弹出为独立窗口(800x500px) - ✅ **功能保留**:弹出窗口中所有功能正常工作 - ✅ **关闭恢复**:关闭弹出窗口后内容返回主窗口 **组合操作** - ✅ **全部关闭**:支持同时关闭所有面板 - ✅ **全部恢复**:支持一键恢复所有面板 - ✅ **全部弹出**:支持同时弹出所有面板为独立窗口 - ✅ **混合状态**:支持不同面板的不同状态组合 #### 8. ⏪ 撤销重做系统 **操作历史管理** - ✅ **撤销操作**:支持多步撤销(Ctrl+Z) - ✅ **重做操作**:支持多步重做(Ctrl+Y) - ✅ **按钮状态**:根据操作历史自动启用/禁用按钮 - ✅ **操作记录**:记录节点创建、移动、删除、连线等操作 - ✅ **状态恢复**:撤销/重做时完整恢复节点和连线状态 #### 9. 🔍 缩放平移 **画布缩放** - ✅ **放大功能**:支持逐步放大,最大 300% - ✅ **缩小功能**:支持逐步缩小,最小 25% - ✅ **适应画布**:一键恢复到 100% 缩放 - ✅ **缩放显示**:工具栏实时显示当前缩放百分比 - ✅ **边界控制**:到达缩放边界时禁止继续缩放 **画布平移** - ✅ **拖拽平移**:支持拖动画布移动视图 - ✅ **小地图导航**:通过小地图快速定位 - ✅ **视口同步**:小地图视口矩形实时反映画布位置 #### 10. ⌨️ 快捷键支持 **编辑快捷键** - ✅ **Ctrl+C**:复制选中节点 - ✅ **Ctrl+V**:粘贴节点到画布 - ✅ **Ctrl+Z**:撤销上一步操作 - ✅ **Ctrl+Y**:重做被撤销的操作 - ✅ **Delete**:删除选中节点 - ✅ **Ctrl+A**:全选画布所有节点 **视图快捷键** - ✅ **Ctrl+=**:放大画布 10% - ✅ **Ctrl+-**:缩小画布 10% - ✅ **Ctrl+0**:重置缩放为 100% - ✅ **F5**:刷新当前视图 **功能快捷键** - ✅ **Ctrl+S**:保存当前任务组 - ✅ **Ctrl+N**:打开新建任务对话框 - ✅ **Ctrl+F**:焦点跳转到搜索框 - ✅ **F11**:切换全屏模式 ### 🎯 任务节点功能 #### 运行模式支持 PC端支持 **10种运行模式**,满足各种任务执行需求: **1. BEAN 模式** - ✅ 执行 Spring 容器中的 Bean 方法 - ✅ 支持自定义 JobHandler - ✅ 支持任务参数传递 **2. API 模式** - ✅ HTTP/HTTPS 接口调用 - ✅ 支持 RESTful API - ✅ JobHandler 自动填充为 `runApiHandler` **3. SQL 模式** - ✅ 执行 SQL 脚本和存储过程 - ✅ 支持多数据源选择 - ✅ 支持参数化查询 **4. GLUE(Java) 模式** - ✅ 在线编写 Java 代码 - ✅ 集成 GLUE IDE 代码编辑器 - ✅ 支持代码语法高亮 **5. GLUE(Shell) 模式** - ✅ 执行 Shell 脚本 - ✅ 支持系统命令调用 - ✅ 跨平台支持 **6. GLUE(Python) 模式** - ✅ 执行 Python 脚本 - ✅ 支持 Python 3.6+ - ✅ 丰富的 Python 生态支持 **7. GLUE(PHP) 模式** - ✅ 执行 PHP 脚本 - ✅ 支持 PHP 7.0+ - ✅ Web 开发友好 **8. GLUE(Nodejs) 模式** - ✅ 执行 Node.js 脚本 - ✅ 支持 npm 包使用 - ✅ 异步编程支持 **9. GLUE(PowerShell) 模式** - ✅ 执行 PowerShell 脚本 - ✅ Windows 系统优化 - ✅ 强大的系统管理能力 **10. GLUE(C#) 模式** - ✅ 执行 C# 脚本 - ✅ .NET 生态支持 - ✅ 企业级开发支持 #### 高级配置选项 每个任务节点支持丰富的**高级配置**: **路由策略**(10种策略) - ✅ **第一个**:选择第一个执行器 - ✅ **最后一个**:选择最后一个执行器 - ✅ **轮询**:按顺序轮询执行器 - ✅ **随机**:随机选择执行器 - ✅ **一致性哈希**:基于一致性哈希算法 - ✅ **最不经常使用**:选择使用频率最低的执行器 - ✅ **最近最久未使用**:选择最近最久未使用的执行器 - ✅ **故障转移**:自动故障转移 - ✅ **忙碌转移**:忙碌时转移到其他执行器 - ✅ **分片广播**:分片广播执行 **阻塞处理策略**(3种策略) - ✅ **单机串行**:同一执行器串行执行 - ✅ **丢弃后续调度**:丢弃后续的调度请求 - ✅ **覆盖之前调度**:新调度覆盖之前的调度 **失败策略**(2种策略) - ✅ **忽略**:任务失败后忽略,继续执行 - ✅ **失败**:任务失败后标记为失败,停止执行 **任务超时时间** - ✅ 支持设置任务超时时间(秒) - ✅ 默认 300 秒 - ✅ 支持设置为 0(不超时) - ✅ 超时后自动终止任务 **失败重试次数** - ✅ 支持设置失败重试次数 - ✅ 默认 0(不重试) - ✅ 支持设置多次重试 - ✅ 重试间隔自动控制 ### 📈 功能测试统计 根据完整的功能测试文档,PC端功能覆盖情况: | 模块 | 测试用例数 | 通过率 | 状态 | |------|-----------|--------|------| | 顶部工具栏 | 40 | 95% | ✅ 稳定 | | 画布交互 | 57 | 88% | ✅ 稳定 | | 树形视图 | 36 | 94% | ✅ 稳定 | | 任务导航栏 | 24 | 79% | ✅ 稳定 | | 日志面板 | 31 | 68% | 🔄 优化中 | | 小地图 | 22 | 68% | 🔄 优化中 | | 面板管理 | 28 | 100% | ✅ 完美 | | 交互流程 | 59 | 88% | ✅ 稳定 | | 节点功能 | 128 | 95% | ✅ 稳定 | | **总计** | **489** | **81.4%** | ✅ **优秀** | ### 🎬 使用流程示例 **1. 创建任务组并添加节点** ``` 1. 点击"文件" → "新建" → "新建任务组" 2. 填写任务组信息并保存 3. 在树形视图选择新建的任务组 4. 右键画布空白区域,选择"添加节点" 5. 配置节点信息(名称、运行模式、执行器等) 6. 保存节点,节点显示在画布上 7. 拖动节点连接点创建连线 8. 点击"保存"按钮保存任务组 ``` **2. 运行任务组** ``` 1. 在树形视图选择要运行的任务组 2. 点击工具栏"运行"按钮 3. 观察导航栏标签的运行指示器 4. 观察画布节点的执行状态变化 5. 在日志面板查看实时执行日志 6. 任务完成后查看执行结果 ``` **3. 节点编辑流程** ``` 1. 右键点击节点,选择"编辑节点" 2. 修改节点配置(名称、运行模式等) 3. 切换运行模式,观察界面变化 4. 配置高级选项(路由策略、超时时间等) 5. 保存节点配置 6. 点击工具栏"保存"保存任务组 ``` ## 🚀 快速开始 ### 📋 环境要求 在开始之前,请确保您的环境满足以下要求: | 环境 | 版本要求 | 说明 | |------|---------|------| | **JDK** | 17+ | 推荐使用 JDK 17 或更高版本 | | **Maven** | 3.6+ | 用于构建 Java 项目 | | **MySQL** | 5.7+ | 推荐使用 MySQL 8.0+ | | **Node.js** | 18+ | Web 前端需要(注意:20.6.0 版本不可用) | | **pnpm** | 最新版 | 前端包管理工具 | | **Python** | 3.6+ | DataX 需要(如果使用 DataX 功能) | ### 1️⃣ 数据库初始化 #### 1.1 创建数据库 ```sql CREATE DATABASE `cc_etl` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` #### 1.2 执行初始化脚本 执行项目根目录下的数据库脚本: ```bash # 方式一:使用 MySQL 命令行 mysql -u root -p cc_job_admin < doc/cc_etl.sql # 方式二:直接在 MySQL 客户端中执行 # 打开 doc/cc_etl.sql 文件,复制内容到 MySQL 客户端执行 ``` ### 2️⃣ 后端配置与启动 #### 2.1 编译项目 ```bash # 进入项目根目录 cd cc-job # 编译项目 mvn clean package -DskipTests ``` #### 2.2 配置说明 #### 🛠️ 管理端配置(Admin) 编辑 `cc-job/cc-job-admin/src/main/resources/application.yml`: ```yaml server: port: 8989 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/cc_job_admin?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai username: your_username # 修改为您的数据库用户名 password: your_password # 修改为您的数据库密码 xxl: job: i18n: zh_CN accessToken: default_token triggerpool: fast: max: 200 slow: max: 200 logretentiondays: 30 logpath: /path/to/logs # 日志文件路径,必须配置,建议与 executor 保持一致 ``` #### ⚙️ 执行器配置 编辑 `cc-job/cc-job-executor-samples/cc-job-executor-sample-springboot/src/main/resources/application.yml`: ```yaml server: port: 8400 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/cc_job_admin?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai username: your_username password: your_password xxl: job: admin: addresses: http://127.0.0.1:8989/xxl-job-admin accessToken: default_token executor: appname: xxl-job-executor-sample address: ip: port: 10000 # 执行器端口 logpath: /path/to/logs # 日志路径,必须配置 logretentiondays: 30 ``` #### 2.3 启动后端服务 **启动 Admin 服务**: ```bash # 方式一:使用 IDE 运行 # 运行 cc-job-admin 模块的启动类 # 方式二:使用命令行 cd cc-job/cc-job-admin mvn spring-boot:run ``` **启动 Executor 服务**: ```bash # 方式一:使用 IDE 运行 # 运行 cc-job-executor-sample-springboot 模块的启动类 # 方式二:使用命令行 cd cc-job/cc-job-executor-samples/cc-job-executor-sample-springboot mvn spring-boot:run ``` **验证启动**: - Admin 服务:访问 `http://localhost:8989/xxl-job-admin` - Executor 会自动注册到 Admin,可在 Web 端查看 ### 4️⃣ PC 端启动 PC 端为 JavaFX 应用,直接运行主类即可: ```bash cd cc-job/cc-job-gui mvn clean package java -jar target/cc-job-gui.jar ``` ### 5️⃣ DataX 配置(可选,如使用数据同步功能) #### 5.1 下载 DataX ```bash wget https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202308/datax.tar.gz tar -zxvf datax.tar.gz ``` #### 5.2 测试 DataX ```bash cd datax python ./bin/datax.py ./job/job.json ``` #### 5.3 配置 Executor 中的 DataX 路径 在 Executor 配置文件中添加: ```yaml cc-job: executor: jsonpath: /path/to/datax/json # DataX JSON 文件临时存放路径 pypath: /path/to/datax/bin/datax.py # DataX Python 脚本路径 ``` --- ## 🧩 模块说明 | 🧩 模块 | 📋 说明 | |------|------| | 💻 **cc_job_pc** | 桌面端管理界面,便于本地运维和管理 | | 🔄 **cc-job/cc-async-tool** | 异步任务调度工具,支持任务重复调用与超时处理(已经移除,会出现线程爆炸增长的情况,已经对编排工具进行重写并集成到cc-job-admin模块中) | | 🗂️ **cc-job/cc-job-admin** | 任务注册中心,负责任务与任务组的注册管理 | | 🧠 **cc-job/cc-job-core** | 任务执行核心模块,负责调度和执行任务 | | 🏃 **cc-job/cc-job-executor** | 任务执行器,支持多种任务类型(DataX、API、JDBC、JAVA、C#等) | | 🧪 **cc-job/cc-job-executor-samples** | 执行器示例工程,便于开发和测试 | | 🗄️ **cc-job/cc-job-xo** | 数据存储与实体映射模块 | | 🌐 **~~cc-job-web~~** | Web 端管理界面,提供可视化任务管理与监控 | --- ## 📚 项目文档 ### 功能测试文档 - **[GUI功能测试文档](doc/测试文档/GUI功能测试文档.md)** ⭐ **推荐阅读** - 📊 **489个测试用例**:覆盖PC端所有核心功能 - ✅ **81.4%通过率**:功能稳定可靠 - 📋 **10大功能模块**:详细的功能测试和用例设计 - 🎯 **完整测试报告**:包含测试结果统计和缺陷分析 - 💡 **使用参考**:可作为功能使用指南参考 ## 🛠️ 技术栈 ### ⚙️ 后端技术栈 | 技术组件 | 版本 | 用途说明 | |---------|------|---------| | **Java** | 17+ | 运行环境,采用最新的 LTS 版本,提供优秀的性能和安全性 | | **Spring Boot** | 3.0.7+ | 企业级应用框架,提供快速开发和自动配置能力 | | **Spring MVC** | - | Web 框架,处理 HTTP 请求和响应 | | **MyBatis Plus** | 3.5.3+ | 持久层框架,简化数据库操作,支持代码生成 | | **XXL-Job** | 2.x | 分布式任务调度平台,提供核心调度能力 | | **DataX** | 最新版 | 异构数据源离线同步工具,支持多种数据源 | | **Druid** | 1.2.x | 数据库连接池,提供连接管理和监控 | | **MySQL** | 5.7+ | 主数据库,存储任务配置和执行记录 | | **Redis** | 可选 | 缓存层,提升系统性能和并发能力 | ### 🌐 ~~前端技术栈(Web 端)~~ | 技术组件 | 版本 | 用途说明 | |---------|------|---------| | **Vue.js** | 3.x | 渐进式前端框架,提供响应式数据绑定 | | **TypeScript** | 5.x | 类型安全的 JavaScript 超集,提升代码质量 | | **Element Plus** | 2.x | Vue 3 企业级组件库,提供丰富的 UI 组件 | | **Vue Flow** | 1.x | 流程图可视化组件,支持拖拽式任务编排 | | **Vite** | 4.x | 新一代前端构建工具,提供快速的开发体验 | | **Vue Router** | 4.x | 单页面应用路由管理 | | **Pinia** | - | Vue 3 状态管理库,替代 Vuex | | **Axios** | 1.x | HTTP 客户端,用于 API 调用 | ### 💻 前端技术栈(PC 端) | 技术组件 | 版本 | 用途说明 | |---------|------|---------| | **JavaFX** | 17+ | Java 桌面应用框架,提供现代化 GUI | | **Java** | 17+ | 运行环境,与后端保持一致的技术栈 | | **Maven** | 3.6+ | 项目构建和依赖管理工具 | | **Scene Builder** | 可选 | JavaFX UI 设计工具,可视化界面设计 | ### 🔧 开发工具链 | 工具类型 | 工具名称 | 用途说明 | |---------|---------|---------| | **构建工具** | Maven 3.6+ | 项目构建、依赖管理和打包 | | **前端包管理** | pnpm | 高效的包管理工具,磁盘空间节省 | | **版本控制** | Git | 代码版本控制和团队协作 | | **IDE** | IntelliJ IDEA | Java 开发集成环境 | | **代码检查** | Checkstyle | 代码规范检查工具 | ### 📊 系统要求 | 环境类型 | 最低配置 | 推荐配置 | |---------|---------|---------| | **操作系统** | Windows 10+ / macOS 10.15+ / Linux | Windows 11 / macOS 12+ / Ubuntu 20.04+ | | **内存** | 4GB | 8GB+ | | **磁盘空间** | 5GB | 20GB+ | | **网络** | 100Mbps | 1Gbps | --- ## ❓ 常见问题 ### 部署相关问题 #### Q1: Admin 启动失败,提示数据库连接错误? **A**: 检查以下几点: 1. 数据库是否已启动 2. 数据库连接信息是否正确(用户名、密码、地址、端口) 3. 数据库用户是否有足够权限 4. 数据库是否已初始化(执行了初始化脚本) 5. 时区设置是否正确(建议使用 `Asia/Shanghai`) #### Q2: Executor 无法注册到 Admin? **A**: 检查以下几点: 1. Admin 服务是否已启动 2. Admin 地址配置是否正确(`admin.addresses`) 3. 网络是否连通(可以 ping 或 telnet 测试) 4. AccessToken 是否一致(admin 和 executor 必须相同) 5. Executor 端口是否被占用 6. 防火墙是否阻止连接 #### Q3: DataX 任务执行失败? **A**: 检查以下几点: 1. DataX 是否已正确安装 2. `pypath` 配置是否正确(指向 DataX 的 Python 脚本路径) 3. `jsonpath` 目录是否存在且有写权限 4. 数据源连接信息是否正确 5. Reader 和 Writer 的表结构是否匹配 6. 检查执行器日志中的详细错误信息 7. Python 环境是否正确(需要 Python 3.6+) #### Q4: Web 端无法访问? **A**: 检查以下几点: 1. Web 前端是否已启动(`pnpm run dev`) 2. 前端端口是否被占用(默认 5173) 3. 后端 API 地址配置是否正确(`.env.development` 中的 `VITE_APP_API_URL`) 4. 浏览器控制台是否有错误信息 5. 检查跨域配置是否正确 6. 后端服务是否正常运行 #### Q5: 任务组执行失败,提示拓扑排序错误? **A**: 检查以下几点: 1. 任务组中是否存在循环依赖 2. 任务节点是否都已正确关联任务 3. 任务依赖关系是否正确配置 4. 检查任务组 JSON 配置是否完整 5. 任务组是否选择了正确的执行器(必须选择"任务集执行器") ### 配置相关问题 #### Q6: 如何配置多个执行器? **A**: 1. 复制 Executor 模块配置 2. 修改每个 Executor 的 `appname` 和 `port`(确保端口不冲突) 3. 确保所有 Executor 的 `admin.addresses` 指向同一个 Admin 4. 确保所有 Executor 的 `accessToken` 与 Admin 一致 5. 启动多个 Executor 实例 #### Q7: 如何配置集群部署? **A**: 1. Admin 可以部署多个实例,共享同一个数据库 2. Executor 可以部署多个实例,实现负载均衡 3. 使用 Nginx 做负载均衡(可选) 4. 确保所有实例的配置一致(特别是 `accessToken`) 5. 确保日志路径可访问(如果使用共享存储) ### 功能使用问题 #### Q8: 如何实现任务失败后发送告警? **A**: 1. 在任务配置中启用"失败告警" 2. 配置告警通知方式(邮件/短信/Webhook) 3. 设置告警规则和接收人 4. 任务失败时会自动触发告警 #### Q9: 如何导出/导入任务组配置? **A**: 1. **导出**:在任务组管理页面点击"导出",生成 JSON 文件 2. **导入**:在任务组管理页面点击"导入",选择 JSON 文件 3. 导入后检查任务依赖关系是否正确 4. 确保导入的任务组中的任务都已存在 ### 开发相关问题 #### Q10: 如何添加新的任务类型? **A**: 1. 在 `cc-job-executor` 模块中实现任务处理器 2. 继承 `AbstractJobHandler` 类 3. 在 Spring 容器中注册处理器 4. 在前端界面中添加对应的配置选项 #### Q11: 如何自定义告警通知? **A**: 1. 实现 `IAlarmService` 接口 2. 配置告警渠道(邮件、短信、Webhook 等) 3. 在任务配置中选择告警方式 4. 测试告警功能是否正常工作 #### Q12: 项目如何进行性能调优? **A**: 1. **数据库优化**:添加合适的索引,避免慢查询 2. **连接池配置**:调整 Druid 连接池参数 3. **JVM 调优**:配置合适的堆内存和 GC 参数 4. **缓存策略**:使用 Redis 缓存热点数据 5. **异步处理**:对耗时操作使用异步处理 ### 升级与维护 #### Q13: 如何从旧版本升级? **A**: 1. 备份数据库和配置文件 2. 下载新版本代码 3. 更新数据库结构(检查升级脚本) 4. 更新配置文件 5. 逐步重启服务,验证功能正常 #### Q14: 如何监控系统运行状态? **A**: 1. 使用内置的监控页面查看任务执行统计 2. 配置日志收集和分析 3. 设置关键指标监控(CPU、内存、磁盘等) 4. 配置告警规则,及时发现问题 ### 故障排除 #### Q15: 任务执行卡住怎么办? **A**: 1. 检查执行器是否正常运行 2. 查看任务执行日志,定位问题 3. 检查网络连接是否正常 4. 重启执行器服务 5. 如果问题持续,联系技术支持 #### Q16: 数据同步速度慢怎么优化? **A**: 1. 调整 DataX 并发度参数 2. 优化数据源查询条件 3. 检查网络带宽是否充足 4. 考虑分批处理大表数据 5. 使用增量同步替代全量同步 --- ## 🤝 贡献指南 我们非常欢迎社区贡献者参与项目开发!无论您是修复 bug、添加功能、改进文档,还是提供建议,都能帮助项目变得更好。 ### 📋 贡献类型 - 🐛 **Bug 修复**:修复已知的问题和缺陷 - ✨ **新功能**:添加新的功能和特性 - 📚 **文档改进**:完善文档、添加示例和教程 - 🎨 **界面优化**:改进用户界面和用户体验 - 🧪 **测试完善**:添加或改进测试用例 - 🔧 **工具改进**:优化构建脚本、开发工具等 ### 🚀 开发流程 #### 1. 环境准备 在开始贡献之前,请确保您的开发环境满足以下要求: ```bash # 克隆项目 git clone https://github.com/xiaozhaoCcz/CC_ETL.git cd CC_ETL # 后端环境要求 - JDK 17+ - Maven 3.6+ - MySQL 5.7+ # 前端环境要求 - Node.js 18+ - pnpm 最新版 ``` #### 2. 开发规范 ##### 分支管理 ```bash # 创建特性分支 git checkout -b feature/your-feature-name # 或修复分支 git checkout -b fix/issue-number-description # 或文档分支 git checkout -b docs/update-documentation ``` ##### 提交规范 ```bash # 提交格式 git commit -m "type(scope): description" # 类型说明 feat: 新功能 fix: 修复bug docs: 文档更新 style: 代码格式调整 refactor: 代码重构 test: 测试相关 chore: 构建过程或工具配置更新 ``` #### 3. 代码规范 ##### Java 后端规范 - 遵循阿里巴巴 Java 开发规范 - 使用 Lombok 简化代码 - 包名统一使用小写,类名使用 Pascal 命名 - 方法注释使用 JavaDoc 格式 ##### 前端规范 - 使用 TypeScript 进行类型检查 - 组件命名使用 Pascal 命名 - 文件命名使用 kebab-case - 提交前运行 ESLint 检查 ##### 数据库规范 - 表名使用下划线分隔的小写 - 字段名使用下划线分隔的小写 - 必须添加字段注释 - 索引命名规范:idx_表名_字段名 ### 🧪 测试要求 - 新功能必须包含单元测试 - 修改现有功能需要更新相关测试 - 提交前确保所有测试通过 ```bash # 运行后端测试 cd cc-job mvn test # 运行前端测试 cd cc-job-web pnpm test ``` ### 📝 提交 Pull Request 1. **Fork 项目** 到您的 GitHub 账户 2. **创建分支** 并进行开发 3. **提交更改** 并推送至您的仓库 4. **创建 PR**: - 标题清晰描述变更内容 - 详细描述变更原因和影响 - 关联相关 Issue(如有) - 请求 Review ### 🐛 报告问题 提交 Issue 时请提供以下信息: #### Bug 报告 - **标题**:清晰描述问题 - **环境信息**: - 操作系统版本 - Java 版本:`java -version` - 项目版本或 commit hash - **复现步骤**: - 详细的操作步骤 - 预期行为 vs 实际行为 - **错误日志**:完整的错误堆栈信息 - **截图**:界面问题请提供截图 #### 功能请求 - **标题**:描述所需功能 - **背景**:为什么需要这个功能 - **实现建议**:可选的实现方案 - **影响范围**:影响哪些用户或场景 ### 🎯 行为准则 - 尊重所有贡献者,保持友好的沟通环境 - 代码审查注重建设性反馈 - 优先考虑项目的整体利益 - 及时响应 Issue 和 PR ### 📞 联系我们 - **项目维护者**:Cc-ETL Team - **讨论群**:暂无 - **邮箱**:项目邮箱(待添加) 感谢您的贡献!🎉 --- ## 📞 技术支持 ### 获取帮助 如果您在使用过程中遇到问题,可以通过以下方式获取帮助: 1. **查看文档**:首先查阅本文档的"常见问题"部分 2. **GitHub Issues**:在项目仓库提交 Issue,描述问题详情 3. **在线文档**:查看[在线文档](http://175.178.249.190/blog/post/298) ### 反馈建议 如果您有任何建议或想法,欢迎: - 提交 Issue 讨论 - 提交 Pull Request - 分享使用经验 --- ## 🙏 致谢 感谢以下优秀的开源项目: - **XXL-Job**:感谢 XXL-Job 提供的优秀任务调度框架 - **DataX**:感谢阿里巴巴 DataX 项目提供的数据同步工具 - **Vue 3**:感谢 Vue.js 团队提供的优秀前端框架 - **Element Plus**:感谢 Element Plus 提供的组件库 - **JavaFX**:感谢 JavaFX 提供的桌面应用框架 --- ## 📄 License 本项目遵循 [MIT License](./LICENSE)。 --- ### 💝 赞助支持 如果您觉得这个项目对您有价值,欢迎通过以下方式支持项目发展: - ⭐ **GitHub Star**:给项目点个星,增加项目曝光度 - 🍴 **Fork & Contribute**:参与项目贡献,共同改进 - 📢 **分享传播**:将项目分享给更多需要的开发者 - 💬 **反馈建议**:提出宝贵意见,帮助项目改进 ### 📞 联系我们 - **项目主页**:[GitHub](https://github.com/xiaozhaoCcz/CC_ETL) | [Gitee](https://gitee.com/xzjsccz/Cc_ETL) - **在线文档**:[http://175.178.249.190/blog/post/298](http://175.178.249.190/blog/post/298) - **Issue 反馈**:在 GitHub/Gitee 上提交 Issue - **讨论交流**:暂无官方讨论群,欢迎在 Issue 中交流 --- ## 📈 项目统计 [![GitHub stars](https://img.shields.io/github/stars/xiaozhaoCcz/CC_ETL.svg?style=social)](https://github.com/xiaozhaoCcz/CC_ETL) [![GitHub forks](https://img.shields.io/github/forks/xiaozhaoCcz/CC_ETL.svg?style=social)](https://github.com/xiaozhaoCcz/CC_ETL) [![GitHub issues](https://img.shields.io/github/issues/xiaozhaoCcz/CC_ETL.svg)](https://github.com/xiaozhaoCcz/CC_ETL/issues) [![GitHub license](https://img.shields.io/github/license/xiaozhaoCcz/CC_ETL.svg)](https://github.com/xiaozhaoCcz/CC_ETL/blob/master/LICENSE) --- **最后更新**:2025-01-07 **维护者**:Cc-ETL Team **版本**:v2.0.0 ---

Made with ❤️ by the Cc-ETL Team

如需更多帮助或有任何建议,欢迎提交 Issue 或 PR!🚀