kimi
2020-05-27 c007f0ca1785db093d48f4846cda82fe8e955765
src/main/java/com/highdatas/mdm/job/JobClient.java
@@ -12,16 +12,14 @@
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.http.*;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.stereotype.Component;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.util.StringUtils;
import org.springframework.web.client.RestTemplate;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
@Slf4j
@@ -43,12 +41,18 @@
    private JobClient() {
        this.prefix = "/xxl-job-admin/";
    }
    /**
     *
     * @description: xxljob 登录接口
     * @return 具体数据
     *
     */
    public  boolean login() {
        String url = this.url + prefix + "login";
        MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
        params.set("userName","mdmadmin");
        params.set("password","datacvg123");
        params.set("ifRemember","false");
        Map<String, String> params = new LinkedHashMap<>();
        params.put("userName","mdmadmin");
        params.put("password","datacvg123");
        params.put("ifRemember","false");
        Map<String, Object> paramMap = new HashMap<>();
        paramMap.putAll(params);
        String urlParamsByMap = HttpUtils.getUrlParamsByMap(paramMap);
@@ -58,6 +62,12 @@
        return  success;
    }
    /**
     *
     * @description: xxljob 参数转换
     * @return 是否请求成功
     *
     */
    private boolean parse(JSONObject result) {
        boolean success = true;
        Integer code = result.getInteger(Constant.Code);
@@ -69,17 +79,22 @@
        return success;
    }
    /**
     *
     * @description: xxljob 保存jobGroup
     * @return 是否请求成功
     *
     */
    public boolean saveJobGroup() {
        try {
            String url =  this.url + prefix + "xxlcustapi/saveJobGroup";
            MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
            params.set("appName","MDMApp");
            params.set("order", "1");
            params.set("title","数据汇集定时任务执行器");
            params.set("modelId","MDM");
            params.set("addressType","1");
            params.set("addressList",local);
            Map<String, String> params = new LinkedHashMap<>();
            params.put("appName","MDMApp");
            params.put("order", "1");
            params.put("title","数据汇集定时任务执行器");
            params.put("modelId","MDM");
            params.put("addressType","1");
            params.put("addressList",local);
            String s = null;
            Map<String, Object> paramMap = new HashMap<>();
            paramMap.putAll(params);
@@ -99,12 +114,52 @@
        }
    }
    /**
     *
     * @description: xxljob 保存自动获取ip的jobgroup
     * @return 是否请求成功
     *
     */
    public boolean saveAutoJobGroup() {
        try {
            String url =  this.url + prefix + "xxlcustapi/saveJobGroup";
            Map<String, String> params = new LinkedHashMap<>();
            params.put("appName","MDMApp");
            params.put("order", "1");
            params.put("title","数据汇集定时任务执行器");
            params.put("modelId","MDM");
            params.put("addressType","0");
//            params.put("addressList",local);
            String s = null;
            Map<String, Object> paramMap = new HashMap<>();
            paramMap.putAll(params);
            String urlParamsByMap = HttpUtils.getUrlParamsByMap(paramMap);
            s = HttpRestClient(url, HttpMethod.POST, null, urlParamsByMap, MediaType.APPLICATION_JSON);
            JSONObject result = (JSONObject) JSON.parse(s);
            boolean success = parse(result);
            if (!success){
                log.error("请求saveJobGroup失败:" + result.getString("msg"));
            }
            return success;
        }catch (Exception e){
            e.printStackTrace();
            return false;
        }
    }
    /**
     *
     * @description: xxljob 删除自动获取ip的jobgroup
     * @return 是否请求成功
     *
     */
    public boolean removeJobGroup() {
        try {
            String url =  this.url + prefix + "xxlcustapi/saveJobGroup";
            MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
            params.set("modelid","MDM");
            Map<String, String> params = new LinkedHashMap<>();
            params.put("modelid","MDM");
            Map<String, Object> paramMap = new HashMap<>();
            paramMap.putAll(params);
            String urlParamsByMap = HttpUtils.getUrlParamsByMap(paramMap);
@@ -122,26 +177,32 @@
    }
    /**
     *
     * @description: xxljob 添加一个job
     * @param  assemble 汇集任务
     * @return 是否请求成功
     *
     */
    public boolean addJob(SysAssemble assemble) {
        try {
            String jobId = createJobId(assemble.getId());
            String url =  this.url + prefix + "xxlcustapi/addJob";
            MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
            params.set("modelId","MDM");
            params.set("modelJobId", jobId);
            params.set("jobCron",assemble.getCron());
            params.set("author",assemble.getUserId());
            params.set("executorHandler","assembleJob");
            params.set("executorParam",assemble.getId());
            params.set("cronGen_display",assemble.getCron());
            params.set("executorBlockStrategy","DISCARD_LATER");
            params.set("executorTimeout","0");
            params.set("executorFailRetryCount","3");
            params.set("triggerStatus","1");
            params.set("glueType","BEAN");
            params.set("executorRouteStrategy","FIRST");
            params.set("jobDesc","创建汇集job");
            Map<String, String> params = new LinkedHashMap<>();
            params.put("modelId","MDM");
            params.put("modelJobId", jobId);
            params.put("jobCron",assemble.getCron());
            params.put("author",assemble.getUserId());
            params.put("executorHandler","assembleJob");
            params.put("executorParam",assemble.getId());
            params.put("cronGen_display",assemble.getCron());
            params.put("executorBlockStrategy","DISCARD_LATER");
            params.put("executorTimeout","0");
            params.put("executorFailRetryCount","0");
            params.put("triggerStatus","1");
            params.put("glueType","BEAN");
            params.put("executorRouteStrategy","FIRST");
            params.put("jobDesc","创建汇集job" + jobId);
            Map<String, Object> paramMap = new HashMap<>();
            paramMap.putAll(params);
            String urlParamsByMap = HttpUtils.getUrlParamsByMap(paramMap);
@@ -161,38 +222,50 @@
        }
    }
    /**
     *
     * @description: xxljob 创建job id
     * @return 是否请求成功
     *
     */
    private String createJobId(String id) {
        if (StringUtils.isEmpty(id)) {
            id = DbUtils.getUUID();
        }
        try {
            String jobId  = "MDM-" + DbUtils.Bit16(id);
            String jobId  = "MDM-" + id;
            return jobId;
        } catch (Exception e) {
            e.printStackTrace();
            return id;
        }
    }
    /**
     *
     * @description: xxljob 更新job
     * @param assemble huiji renwu
     * @return 是否请求成功
     *
     */
    public boolean updateJob(SysAssemble assemble) {
        try {
            String jobId = createJobId(assemble.getId());
            String url =  this.url + prefix + "xxlcustapi/updateJob";
            MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
            params.set("modelId","MDM");
            params.set("modelJobId",assemble.getJobId());
            params.set("jobCron",assemble.getCron());
            params.set("author",assemble.getUserId());
            params.set("executorHandler","assembleJob");
            params.set("executorParam",assemble.getId());
            params.set("cronGen_display",assemble.getCron());
            params.set("executorBlockStrategy","DISCARD_LATER");
            params.set("executorTimeout","0");
            params.set("executorFailRetryCount","3");
            params.set("triggerStatus","1");
            params.set("glueType","BEAN");
            params.set("executorRouteStrategy","FIRST");
            params.set("jobDesc","更新汇集job");
            Map<String, String> params = new LinkedHashMap<>();
            params.put("modelId","MDM");
            params.put("modelJobId",assemble.getJobId());
            params.put("jobCron",assemble.getCron());
            params.put("author",assemble.getUserId());
            params.put("executorHandler","assembleJob");
            params.put("executorParam",assemble.getId());
            params.put("cronGen_display",assemble.getCron());
            params.put("executorBlockStrategy","DISCARD_LATER");
            params.put("executorTimeout","0");
            params.put("executorFailRetryCount","3");
            params.put("triggerStatus","1");
            params.put("glueType","BEAN");
            params.put("executorRouteStrategy","FIRST");
            params.put("jobDesc","更新汇集job" + jobId);
            Map<String, Object> paramMap = new HashMap<>();
            paramMap.putAll(params);
            String urlParamsByMap = HttpUtils.getUrlParamsByMap(paramMap);
@@ -210,14 +283,20 @@
        }
    }
    /**
     *
     * @description: xxljob 删除job
     * @param  jobId job ID
     * @return 是否请求成功
     *
     */
    public boolean deleteJob(String jobId) {
        try {
            String url =  this.url + prefix + "xxlcustapi/removeJob";
            MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
            params.set("modelId","MDM");
            params.set("modelJobId", jobId);
            Map<String, String> params = new LinkedHashMap<>();
            params.put("modelId","MDM");
            params.put("modelJobId", jobId);
            Map<String, Object> paramMap = new HashMap<>();
            paramMap.putAll(params);
@@ -243,9 +322,9 @@
        }
        try {
            String url =  this.url + prefix + "xxlcustapi/queryJobLogById";
            MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
            params.set("modelId","MDM");
            params.set("modelJobId", assemble.getJobId());
            Map<String, String> params = new LinkedHashMap<>();
            params.put("modelId","MDM");
            params.put("modelJobId", assemble.getJobId());
            Map<String, Object> paramMap = new HashMap<>();
            paramMap.putAll(params);
@@ -265,16 +344,22 @@
    }
    /**
     *
     * @description: xxljob 触发一次
     * @return 是否请求成功
     *
     */
    public boolean trigger(SysAssemble assemble) {
        if (StringUtils.isEmpty(assemble.getJobId())) {
            return false;
        }
        try {
            String url =  this.url + prefix + "xxlcustapi/trigger";
            MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
            params.set("modelId","MDM");
            params.set("modelJobId", assemble.getJobId());
            params.set("executorParam", assemble.getId());
            Map<String, String> params = new LinkedHashMap<>();
            params.put("modelId","MDM");
            params.put("modelJobId", assemble.getJobId());
            params.put("executorParam", assemble.getId());
            Map<String, Object> paramMap = new HashMap<>();
            paramMap.putAll(params);
@@ -294,8 +379,13 @@
    }
    private  String     HttpRestClient(String url, HttpMethod method, MultiValueMap<String, String> formParams, String getParams,  MediaType mediaType) {
    /**
     *
     * @description: xxljob 使用的http请求工具方法
     * @return 是否请求成功
     *
     */
    private  String     HttpRestClient(String url, HttpMethod method, Map<String, String> formParams, String getParams,  MediaType mediaType) {
        if (!StringUtils.isEmpty(getParams)) {
            url = url + Constant.QUESTION + getParams;
        }
@@ -308,7 +398,7 @@
            headers.setContentType(mediaType);
        }
        HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<MultiValueMap<String, String>>(formParams, headers);
        HttpEntity<Map<String, String>> requestEntity = new HttpEntity<Map<String, String>>(formParams, headers);
        //  执行HTTP请求
        ResponseEntity<String> response = client.exchange(url, method, requestEntity, String.class);