任务调度大数据后端前端【免费下载链接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code项目地址https://gitcode.com/gh_mirrors/do/dolphinscheduler点击查看免费下载本文围绕 Apache DolphinScheduler 的「项目管理」模块展开系统讲解项目管理页面的核心操作——创建项目、项目工作组授权以及项目首页总览三大功能并结合后端 REST APIProjectController与前端 Vue 实现进行源码级佐证。读完本文你将掌握 DolphinScheduler 中项目从创建、授权到监控的完整操作链路理解任务实例状态、工作流实例状态与工作流定义统计三类指标的业务含义并能直接上手在自己的环境中完成项目初始化与权限配置。项目在 DolphinScheduler 中的定位在 Apache DolphinScheduler 中项目Project是组织与管理一切工作流资源的顶层容器工作流定义、工作流实例、任务实例、定时调度等资源都归属于某个项目。项目不仅是资源的文件夹更是权限控制的基本单位——用户能否查看、编辑、删除某个项目由管理员在安全中心统一授权。在动手操作之前先掌握几个贯穿后续章节的核心术语英文文档 docs/docs/en/guide/project/project-list.md 中给出如下定义术语说明DAG工作流中的任务以有向无环图Directed Acyclic Graph形式组织调度时从入度为零的节点开始进行拓扑遍历直到不存在后继节点为止工作流定义Workflow Definition通过拖拽任务节点并建立任务节点关联DAG形成的可视化定义工作流实例Workflow Instance工作流定义的实例化可通过手动启动或定时调度生成每次流程定义运行都会生成一个工作流实例工作流关系Workflow Relation展示项目中所有工作流的动态状态任务Task工作流中的离散动作。DolphinScheduler 支持 SHELL、SQL、SUB_PROCESS子流程、PROCEDURE、MR、SPARK、PYTHON、DEPENDENT依赖等多种任务类型并支持动态插件化扩展子流程本身也是一个可独立启动、独立执行的流程定义任务实例Task Instance流程定义中任务节点的实例化标识具体任务的执行状态其中工作流定义 / 工作流实例 / 任务实例三个概念正是项目首页统计卡片的核心统计对象后文会详细展开。项目管理页面概览登录 DolphinScheduler 后通过左侧导航进入项目管理Project Management页面。页面以表格形式列出当前用户可见的全部项目展示字段包括项目名称、所属用户owner、工作流定义数量、流程实例信息以及创建/更新时间同时提供创建、编辑、删除等操作入口见英文文档对 Project List 的描述。页面还内置了搜索框与分页控件支持按名称关键字快速检索项目。从后端看该列表由ProjectController的queryProjectListPaging接口支撑ProjectController.java它接收searchVal搜索关键字、pageSize每页条数与pageNo页码三个参数内部通过resourcePermissionCheckService获取当前登录用户拥有权限的项目 ID 集合再分页查询。前端列表页实现位于 dolphinscheduler-ui/src/views/projects/list/index.tsx分页器支持每页 10 / 30 / 50 条三种规格并支持快速跳转页码。值得注意的细节queryProjectListPaging在返回列表时会通过processDefinitionMapper.queryProjectProcessDefinitionCountByProjectCodes为每个项目补齐工作流定义数量字段见 ProjectServiceImpl.java——这正是列表中工作流定义一列数据的来源。创建项目创建项目是使用 DolphinScheduler 的第一步。操作步骤如下点击项目管理进入项目管理页面点击右上角的创建项目Create Project按钮在弹出的表单中填写项目名称必填与项目描述选填点击提交Submit完成创建。创建成功后新项目会立即出现在项目管理列表中成为后续工作流定义、任务调度等操作的归属容器。创建过程的源码约束项目创建并非简单的数据写入ProjectServiceImpl.createProjectProjectServiceImpl.java在落库前会依次执行以下校验与初始化逻辑描述长度校验checkDesc方法限制描述最多255 个字符按 Unicode 码点计数超出则返回DESCRIPTION_TOO_LONG_ERROR源码位置权限校验调用canOperatorPermissions检查当前用户是否具备PROJECT_CREATE权限无权限则返回USER_NO_OPERATION_PERM名称唯一性校验通过projectMapper.queryByName(name)查询同名项目若已存在则返回PROJECT_ALREADY_EXISTS并记录 WARN 日志生成项目编码项目除自增主键id外还会通过CodeGenerateUtils.genCode()生成全局唯一的code。这个code是业务层的资源标识后续所有针对项目的工作流、任务、授权接口都以code而非id作为路径参数记录创建人与时间userId、userName取自当前登录用户createTime/updateTime取当前时间。对应的 HTTP 接口定义在 ProjectController.javaPOST /projects?projectNamexxxdescriptionxxx创建接口带有OperatorLog(auditType AuditType.PROJECT_CREATE)注解即每次创建操作都会写入审计日志管理员可在安全中心追溯项目的创建记录。项目编辑与删除在项目管理页面可对项目执行编辑与删除操作两者同样有严格的权限与业务约束。编辑项目对应PUT /projects/{code}接口ProjectController.java。后端ProjectServiceImpl.update源码的逻辑要点先校验新描述长度再通过hasProjectAndWritePerm确认当前用户对该项目具有写权限修改名称前再次校验名称唯一性——排除自身tempProject.getCode() ! project.getCode()后若发现其他项目已使用该名称则拒绝修改更新name、description、updateTime并重新记录项目所属用户。删除项目对应DELETE /projects/{code}接口ProjectController.java。ProjectServiceImpl.deleteProject源码有一个重要的前置约束项目下存在工作流定义时不允许删除。后端会先调用processDefinitionMapper.queryAllDefinitionList(project.getCode())检查项目内是否仍有流程定义若非空则返回DELETE_PROJECT_ERROR_DEFINES_NOT_NULL并提示请先删除项目中的工作流定义。确认可删除后还会顺带通过taskGroupService.deleteTaskGroupByProjectCode清理该项目关联的任务组最后才执行物理删除。项目工作组授权在 DolphinScheduler 中工作流最终由 Worker 执行而 Worker 是按工作组Worker Group划分的。项目与工作组是多对多关系一个项目可以访问多个工作组多个项目也可共享同一工作组。操作步骤在项目管理页面找到目标项目点击该行的工作组授权Worker Group Authorization按钮进入授权弹窗后页面会以穿梭框Transfer形式列出全部可用工作组左侧与该项目当前已授权的工作组右侧勾选需要授权的工作组点击分配 WorkerGroup确认。授权成功后该项目的工作流即可调度到被授权工作组中的 Worker 上执行。在 use-worker-group.ts 中可以观察到两个实现细节工作组选项通过queryAllWorkerGroups拉取且default工作组在穿梭框中是禁用disabled状态不可取消其授权源码 L41-L52弹窗打开时通过queryWorkerGroupsByProjectCode回填该项目已授权的工作组源码 L54-L61提交时调用assignWorkerGroups接口将选中的工作组以逗号分隔的字符串整体提交源码 L72-L82。弹窗 UI 使用 Naive UI 的NTransfer组件实现并启用了虚拟滚动以支持大量工作组场景见 worker-group-modal.tsx。工作组的实际作用从调度链路看工作流定义在配置执行参数时可以指定运行在哪个工作组上Master 在分发任务时只会把任务派发给该项目已授权工作组内的 Worker。因此工作组授权是项目 → 计算资源的桥接配置只建项目不授权工作组项目内工作流将无法找到可用的执行资源除default工作组外。项目首页三类统计指标详解在项目管理页面点击项目名称链接即可进入该项目首页Project Overview。首页核心由三张统计卡片组成对应前端实现 dolphinscheduler-ui/src/views/projects/overview/index.tsx任务实例状态统计Task State Statistics在指定时间范围内统计任务实例中处于各状态的个数工作流实例状态统计Process State Statistics在指定时间范围内统计工作流实例中处于各状态的个数工作流定义统计Process Definition Statistics统计用户创建的工作流定义以及管理员授予该用户的工作流定义。状态统计的口径任务实例与工作流实例的状态统计覆盖以下状态集合中英文文档均有列明状态说明提交成功SUBMITTED_SUCCESS实例已成功提交等待调度执行正在运行RUNNING_EXECUTION实例正在执行中准备暂停READY_PAUSE已收到暂停指令等待安全暂停点暂停PAUSE实例已暂停准备停止READY_STOP已收到停止指令等待安全停止点停止STOP实例已停止失败FAILURE实例执行失败成功SUCCESS实例执行成功需要容错NEED_FAULT_TOLERANCE实例所在节点故障等待容错处理killKILL实例被强制终止等待线程WAITING_THREAD实例等待可用执行线程通过观察状态集合可以发现DolphinScheduler 的状态机覆盖了提交 → 运行 → 暂停/停止 → 成功/失败/容错/kill的完整生命周期其中准备暂停/准备停止体现了优雅停机的设计——实例不会在任意时刻被打断而是在到达安全边界时才真正转换状态。时间范围与前端实现首页默认展示从今天零点startOfToday到当前时刻的数据overview/index.tsx L31用户可通过日期选择器调整统计时间范围。切换时间后前端调用countTaskState接口并携带startDate、endDate格式为yyyy-MM-dd HH:mm:ss与projectCode三个参数见 use-task-state.ts返回的taskInstanceStatusCounts数组同时被渲染为统计表格与饼图/环形图两种形态StateCard 组件使用处。工作流实例状态的统计逻辑与之对称由use-process-state.ts中的countProcessInstanceState完成。工作流定义统计的权限含义工作流定义统计卡片调用countDefinitionByUser接口见 use-process-definition.ts按用户维度聚合展示项目内工作流定义的数量分布。其统计口径为统计用户自己创建的工作流定义以及管理员授权给该用户的工作流定义。这意味着用户能看到的工作流定义 自己创建的 被授予的与项目层面的权限模型一脉相承体现了 DolphinScheduler资源授权到人的设计理念。附录项目相关 REST API 一览结合 ProjectController.java 的完整实现项目管理涉及的主要接口汇总如下便于通过 API 方式或二次开发操作项目方法路径说明POST/projects创建项目参数projectName、descriptionPUT/projects/{code}更新项目名称与描述DELETE/projects/{code}删除项目项目内存在工作流定义时会被拒绝GET/projects分页查询当前用户可见的项目列表searchVal/pageSize/pageNoGET/projects/{code}按 code 查询项目详情GET/projects/unauth-project查询指定用户无权访问的项目用于授权管理页GET/projects/authed-project查询指定用户已被授权的项目GET/projects/authed-user查询对指定项目有权限的用户列表GET/projects/created-and-authed查询当前用户创建及被授权的全部项目GET/projects/list查询全部项目列表GET/projects/list-dependent查询依赖节点可用的项目列表其中查询未授权项目 / 已授权项目 / 已授权用户三组接口是安全中心进行项目授权管理将项目授权给其他用户、撤销授权的底层支撑可与本文介绍的工作组授权配合理解工作组授权解决项目能用哪些 Worker的问题而项目对用户的授权解决谁能访问这个项目的问题两者共同构成了项目维度的资源访问控制体系。小结本文以项目管理页面为线索完整走通了创建项目 → 工作组授权 → 项目总览的核心链路并深入源码层揭示了名称唯一性校验、描述长度限制、删除前置约束、default工作组保护等不易从界面上直接观察到的规则。掌握了这些你就拥有了在 Apache DolphinScheduler 中安全、规范地初始化与管理项目的能力为后续的工作流定义、定时调度与任务执行打下了基础。赞分享任务调度大数据后端前端【免费下载链接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code项目地址https://gitcode.com/gh_mirrors/do/dolphinscheduler点击查看免费下载相关推荐Apache DolphinScheduler 项目管理实战指南创建项目、工作组授权与项目首页统计解读Apache DolphinScheduler 项目管理实战指南创建项目、工作组授权与项目首页统计解读 导读 本文基于 Apache DolphinSched任务调度数据编排工作流自动化后端大数据Apache DolphinScheduler 项目管理实战项目列表、创建、WorkerGroup 授权与概览统计全解析Apache DolphinScheduler 项目管理实战项目列表、创建、WorkerGroup 授权与概览统计全解析 本文以 Apache Dolphin任务调度数据编排工作流自动化后端大数据Apache DolphinScheduler 项目管理实战从创建项目、Worker 组授权到项目首页运行统计Apache DolphinScheduler 项目管理实战从创建项目、Worker 组授权到项目首页运行统计 本文围绕 Apache DolphinSche任务调度大数据后端前端创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考