springboot 项目集成 dolphinscheduler 调度器 项目管理
作者:刘大猫
- 2025-10-20 黑龙江
本文字数:3543 字
阅读完需:约 12 分钟
dolphinscheduler 调度器接入注意事项等信息可参考我的上一篇博客进行了解,地址在这里 ->@[TOC]
一、功能清单
二、项目管理
说明:项目管理统一用 dolphinscheduler 调度器的 admin 用户 token 执行
共用的依赖
<!--httpclient--><dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</artifactId> <version>3.1</version></dependency>
复制代码
共用配置文件
dolphinscheduler.token=xxxdolphinscheduler.address=http://IP:12345
复制代码
共用代码
@Autowiredprivate RestTemplate restTemplate;@Value("${dolphinscheduler.token}")String token;@Value("${dolphinscheduler.address}")String address;public static final int ZERO = 0;public static final int SUCCESS = 200;@Autowiredprivate DragSparkTaskService dragSparkTaskService;@Value("${spark.main.class}")String mainClass;public static final String CREATE = "create";public static final String UPDATE = "update";public static final String ADD = "add";public static final String DELETE = "delete";public static final String ONLINE = "ONLINE";public static final String OFFLINE = "OFFLINE";public static final int ONE_THOUSAND_AND_FIVE_HUNDRED = 1500;public static final int SIX = 6;public static final int EIGHTY = 80;public static final int THREE = 3;@Autowiredprivate StringRedisTemplate redisTemplate;@Value("${drag.task.state}")String dragTaskState;@Autowiredprivate DragSparkTaskMapper dragSparkTaskMapper;
复制代码
1.查询项目列表
代码
/** * 查询项目列表 * @param pageNo 当前页 * @param pageSize 每页显示数量 * @param searchVal 模糊搜索值 * @author liudz * @date 2021/5/7 * @return 执行结果 **/ @GetMapping("/project/list") public Response getProjectList(@RequestParam int pageNo, @RequestParam int pageSize, @RequestParam(required = false) String searchVal) { HttpHeaders headers = new HttpHeaders(); headers.set("token", token); headers.set("Content-Type", "application/json"); HttpEntity requestEntity = new HttpEntity(headers); String url = ""; if (StringUtils.isEmpty(searchVal)) { url = address + "/dolphinscheduler/projects/list-paging?pageNo=" + pageNo + "&pageSize=" + pageSize; } else { url = address + "/dolphinscheduler/projects/list-paging?pageNo=" + pageNo + "&pageSize=" + pageSize + "&searchVal=" + searchVal; } ResponseEntity<DolphinschedulerResponse> response = restTemplate.exchange(url, HttpMethod.GET, requestEntity, DolphinschedulerResponse.class); return Response.success(response.getBody().getData()); }
复制代码
2.创建项目
代码
/** * 创建项目 * @param projectDto 项目参数 * @author liudz * @date 2021/5/7 * @return 执行结果 **/ @PostMapping("/project/creat") public Response creatProject(@RequestBody ProjectDto projectDto) { try { String postURL = address + "/dolphinscheduler/projects/create"; PostMethod postMethod = new PostMethod(postURL); postMethod.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); postMethod.setRequestHeader("token", token); // 参数设置,需要注意的就是里边不能传NULL,要传空字符串 NameValuePair[] data = {new NameValuePair("projectName", projectDto.getProjectName()), new NameValuePair("description", projectDto.getDescription())}; postMethod.setRequestBody(data); org.apache.commons.httpclient.HttpClient httpClient = new org.apache.commons.httpclient.HttpClient(); httpClient.executeMethod(postMethod); JSONObject result = JSONObject.parseObject(postMethod.getResponseBodyAsString()); if (!result.get(DictionaryEnum.CODE.getFiledString()).equals(ZERO)) { return Response.error(result.getInteger("code"), result.getString("msg")); } } catch (Exception e) { log.info("请求异常:{}", e); } return Response.success(); }
复制代码
3.更新项目
代码
/** * 更新项目 * @param projectDto 项目参数 * @author liudz * @date 2021/5/7 * @return 执行结果 **/ @PutMapping("/project/update") public Response updateProject(@RequestBody ProjectDto projectDto) { try { String postURL = address + "/dolphinscheduler/projects/update"; PostMethod postMethod = new PostMethod(postURL); postMethod.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); postMethod.setRequestHeader("token", token); // 参数设置,需要注意的就是里边不能传NULL,要传空字符串 NameValuePair[] data = { new NameValuePair("projectName", projectDto.getProjectName()), new NameValuePair("projectId", projectDto.getProjectId().toString()), new NameValuePair("description", projectDto.getDescription())}; postMethod.setRequestBody(data); org.apache.commons.httpclient.HttpClient httpClient = new org.apache.commons.httpclient.HttpClient(); httpClient.executeMethod(postMethod); JSONObject result = JSONObject.parseObject(postMethod.getResponseBodyAsString()); if (!result.get(DictionaryEnum.CODE.getFiledString()).equals(ZERO)) { return Response.error(result.getInteger("code"), result.getString("msg")); } } catch (Exception e) { log.info("请求异常:{}", e); } return Response.success(); }
复制代码
4.删除项目
代码
/** * 删除项目 * @param projectId 项目id * @author liudz * @date 2021/5/7 * @return 执行结果 **/ @DeleteMapping("/project/delete") public Response deleteProject(@RequestParam String projectId) { HttpHeaders headers = new HttpHeaders(); headers.set("token", token); headers.set("Content-Type", "application/json"); HttpEntity requestEntity = new HttpEntity(headers); ResponseEntity<DolphinschedulerResponse> response = restTemplate.exchange( address + "/dolphinscheduler/projects/delete?projectId=" + projectId, HttpMethod.GET, requestEntity, DolphinschedulerResponse.class); if (response.getBody().getCode() != ZERO) { return Response.error(response.getBody().getCode(), response.getBody().getMsg()); } return Response.success(); }
复制代码
三、本人相关其他文章链接
1.springboot 项目集成 dolphinscheduler 调度器 可拖拽 spark 任务管理:https://blog.csdn.net/a924382407/article/details/117119831
2.springboot 项目集成 dolphinscheduler 调度器 实现 datax 数据同步任务:https://blog.csdn.net/a924382407/article/details/120951230
3.springboot 项目集成 dolphinscheduler 调度器 项目管理:https://blog.csdn.net/a924382407/article/details/117118931
4.springboot 项目集成大数据第三方 dolphinscheduler 调度器 执行/停止任务https://blog.csdn.net/a924382407/article/details/117121181
5.springboot 项目集成大数据第三方 dolphinscheduler 调度器https://blog.csdn.net/a924382407/article/details/117113848
划线
评论
复制
发布于: 刚刚阅读数: 2
刘大猫
关注
还未添加个人签名 2022-08-23 加入
还未添加个人简介







评论