写点什么

springboot 项目集成 dolphinscheduler 调度器 项目管理

作者:刘大猫
  • 2025-07-09
    黑龙江
  • 本文字数: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

用户头像

刘大猫

关注

还未添加个人签名 2022-08-23 加入

还未添加个人简介

评论

发布
暂无评论
springboot项目集成dolphinscheduler调度器 项目管理_人工智能_刘大猫_InfoQ写作社区