diff options
| author | lijinyang <[email protected]> | 2024-03-18 17:04:11 +0800 |
|---|---|---|
| committer | lijinyang <[email protected]> | 2024-03-18 17:04:11 +0800 |
| commit | ebd4babe5220ee94c3eb3c6311592761c3dcc728 (patch) | |
| tree | 6c6052a12f5a15ab829970e36af70a99ae37f148 | |
| parent | c970ca0538f507b8a78b2c38910740e3aca47483 (diff) | |
fix:GAL-518 Saved Query Scheduler job状态信息获取接口开发
15 files changed, 233 insertions, 45 deletions
diff --git a/src/main/java/com/mesa/reportservice/controller/MonitorController.java b/src/main/java/com/mesa/reportservice/controller/MonitorController.java index 8d5f8c7..ebd114c 100644 --- a/src/main/java/com/mesa/reportservice/controller/MonitorController.java +++ b/src/main/java/com/mesa/reportservice/controller/MonitorController.java @@ -1,11 +1,16 @@ package com.mesa.reportservice.controller; +import com.mesa.reportservice.bean.MonitorEntity; +import com.mesa.reportservice.service.JobService; import com.mesa.reportservice.service.MonitorService; +import com.mesa.reportservice.util.R; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; +import java.util.Map; /** * @@ -18,9 +23,18 @@ public class MonitorController { @Autowired private MonitorService monitorService; + @Autowired + private JobService jobService; @GetMapping(value = "/monitor") - public String getJobCount() { - return monitorService.getJobCount(); + public R getJobCount() { + MonitorEntity jobCount = monitorService.getJobCount(); + return R.ok(jobCount); + } + + @GetMapping(value = "/monitor/job/{jobId}") + public R getJobState(@PathVariable String jobId) { + Map<String, Object> jobState = jobService.getJobDetail(jobId); + return R.ok(jobState); } } diff --git a/src/main/java/com/mesa/reportservice/exception/SQSCode.java b/src/main/java/com/mesa/reportservice/exception/SQSCode.java index d20f28b..96cab45 100644 --- a/src/main/java/com/mesa/reportservice/exception/SQSCode.java +++ b/src/main/java/com/mesa/reportservice/exception/SQSCode.java @@ -31,6 +31,7 @@ public enum SQSCode { TASK_CANNOT_EXECUTED(500010,"task cannot be executed"), UNKNOWN_ERROR(500999,"Unknown Error"), + JOB_IS_NOT_EXIST(510000, "job is not exist"), //成功 SUCCESS(200, "success"), //失败 diff --git a/src/main/java/com/mesa/reportservice/exception/SQSExceptionHandler.java b/src/main/java/com/mesa/reportservice/exception/SQSExceptionHandler.java new file mode 100644 index 0000000..de3904c --- /dev/null +++ b/src/main/java/com/mesa/reportservice/exception/SQSExceptionHandler.java @@ -0,0 +1,46 @@ +/** + + * + + * + + */ + +package com.mesa.reportservice.exception; + +import cn.hutool.log.Log; +import com.mesa.reportservice.util.R; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.bind.annotation.RestControllerAdvice; + +/** + * 异常处理器 + * + * @author 86158 + + */ +@RestControllerAdvice +public class SQSExceptionHandler { + private Log logger = Log.get(); + + /** + * 处理自定义异常 + */ + @ExceptionHandler(SQSException.class) + @ResponseStatus(value= HttpStatus.BAD_REQUEST) + public R handleSQSException(SQSException e){ + R r = new R(); + r.put("code", e.getCode()); + r.put("message", e.getMsg()); + return r; + } + + @ExceptionHandler(Exception.class) + @ResponseStatus(value=HttpStatus.INTERNAL_SERVER_ERROR) + public R handleException(Exception e){ + logger.error(e); + return R.error().put("message", e.getMessage()); + } +} diff --git a/src/main/java/com/mesa/reportservice/mapper/JobMapper.java b/src/main/java/com/mesa/reportservice/mapper/JobMapper.java index 4546b12..82f925d 100644 --- a/src/main/java/com/mesa/reportservice/mapper/JobMapper.java +++ b/src/main/java/com/mesa/reportservice/mapper/JobMapper.java @@ -24,6 +24,7 @@ public interface JobMapper extends BaseMapper<JobEntity> { int updateStatue(JobEntity job); - Map<String,Long> getJobCount(Map<String, Object> map); + Map<String,Long> getJobCount(long lastUpdateTime); + Map<String,Object> getJobDetail(String jobId); }
\ No newline at end of file diff --git a/src/main/java/com/mesa/reportservice/service/JobService.java b/src/main/java/com/mesa/reportservice/service/JobService.java index 706c75a..2b51d0a 100644 --- a/src/main/java/com/mesa/reportservice/service/JobService.java +++ b/src/main/java/com/mesa/reportservice/service/JobService.java @@ -22,4 +22,6 @@ public interface JobService extends IService<JobEntity> { int updateProcesses(JobEntity job); Map<String,Long> getJobCount(); + + Map<String,Object> getJobDetail(String jobId); } diff --git a/src/main/java/com/mesa/reportservice/service/MonitorService.java b/src/main/java/com/mesa/reportservice/service/MonitorService.java index 5bccaea..fe0d38a 100644 --- a/src/main/java/com/mesa/reportservice/service/MonitorService.java +++ b/src/main/java/com/mesa/reportservice/service/MonitorService.java @@ -1,5 +1,7 @@ package com.mesa.reportservice.service; +import com.mesa.reportservice.bean.MonitorEntity; + /** * * @author lijinyang @@ -11,5 +13,5 @@ public interface MonitorService { void addFail(); - String getJobCount(); + MonitorEntity getJobCount(); }
\ No newline at end of file diff --git a/src/main/java/com/mesa/reportservice/service/impl/ExecuteProcessServiceImpl.java b/src/main/java/com/mesa/reportservice/service/impl/ExecuteProcessServiceImpl.java index 4e514d1..a2d4cf5 100644 --- a/src/main/java/com/mesa/reportservice/service/impl/ExecuteProcessServiceImpl.java +++ b/src/main/java/com/mesa/reportservice/service/impl/ExecuteProcessServiceImpl.java @@ -1,5 +1,6 @@ package com.mesa.reportservice.service.impl; +import cn.hutool.core.util.StrUtil; import cn.hutool.log.Log; import cn.hutool.log.LogFactory; import com.alibaba.fastjson.JSON; @@ -50,6 +51,7 @@ public class ExecuteProcessServiceImpl implements ExecuteProcessService { jobEntity.setEndTime(System.currentTimeMillis()/1000); jobEntity.setDoneProgress(1.00f); jobEntity.setIsFailed(1); + String resultMessage = jobEntity.getResultMessage(); try { if (jobEntity.getIsValid() == 0) { jobEntity.setResultMessage(Constant.CANCEL); @@ -61,21 +63,21 @@ public class ExecuteProcessServiceImpl implements ExecuteProcessService { jobEntity.setIsFailed(0); logger.info(MessageFormat.format(Constant.LOG_SUCCESS_SAVE_TO_HBASE,jobEntity.getQueryId(),jobEntity.getJobId(),jobEntity.getQuerySql())); } else { - jobEntity.setResultMessage(Constant.WRITE_DATA_ERROR); + jobEntity.setResultMessage(StrUtil.concat(false,Constant.WRITE_DATA_ERROR,StrUtil.COLON,resultMessage)); monitorService.addFail(); msg = MessageFormat.format(SQSCode.TEMPLATE_SAVE_HBASE_ERROR.getMsg(),jobEntity.getExecuteStatus(),jobEntity.getQueryId(),jobEntity.getJobId(),jobEntity.getQuerySql()); logger.error(msg); } } else if (jobEntity.getExecuteStatus() >= Constant.JOB_BAD_REQUEST_THRESHOLD && jobEntity.getExecuteStatus() < Constant.JOB_INTERNAL_SERVER_ERROR_THRESHOLD) { - jobEntity.setResultMessage(Constant.PARAM_SYNTAX_ERROR); + jobEntity.setResultMessage(StrUtil.concat(false,Constant.PARAM_SYNTAX_ERROR,StrUtil.COLON,resultMessage)); msg = MessageFormat.format(SQSCode.PARAM_SYNTAX_ERROR.getMsg(),jobEntity.getExecuteStatus(),jobEntity.getQueryId(),jobEntity.getJobId(),jobEntity.getQuerySql()); logger.error(msg); } else if (jobEntity.getExecuteStatus() == Constant.JOB_SQL_EXECUTION_ERROR_CODE) { - jobEntity.setResultMessage(Constant.SQL_EXECUTION_ERROR); + jobEntity.setResultMessage(StrUtil.concat(false,Constant.SQL_EXECUTION_ERROR,StrUtil.COLON,resultMessage)); msg = MessageFormat.format(SQSCode.TEMPLATE_SQL_EXECUTION_ERROR.getMsg(),jobEntity.getExecuteStatus(),jobEntity.getQueryId(),jobEntity.getJobId(),jobEntity.getQuerySql()); logger.error(msg); } else { - jobEntity.setResultMessage(Constant.UNKNOWN_ERROR); + jobEntity.setResultMessage(StrUtil.concat(false,Constant.UNKNOWN_ERROR,StrUtil.COLON,resultMessage)); msg = MessageFormat.format(SQSCode.UNKNOWN_ERROR.getMsg(),jobEntity.getQueryId(),jobEntity.getJobId(),jobEntity.getQuerySql()); logger.error(msg); } @@ -88,9 +90,9 @@ public class ExecuteProcessServiceImpl implements ExecuteProcessService { } while (number != 1 && z >= 0); } catch (Exception e) { - jobEntity.setResultMessage(Constant.DATABASE_ERROR); + jobEntity.setResultMessage(StrUtil.concat(false,Constant.DATABASE_ERROR,StrUtil.COLON,e.getMessage())); jobService.updateProcesses(jobEntity); - msg = MessageFormat.format(SQSCode.TEMPLATE_SAVE_DATABASE_ERROR.getMsg(),jobEntity.getQueryId(),jobEntity.getJobId(),e.toString()); + msg = MessageFormat.format(SQSCode.TEMPLATE_SAVE_DATABASE_ERROR.getMsg(),jobEntity.getQueryId(),jobEntity.getJobId(),e.getMessage()); logger.error(msg); } finally { saveToMonitor(jobEntity); diff --git a/src/main/java/com/mesa/reportservice/service/impl/ExecuteServiceImpl.java b/src/main/java/com/mesa/reportservice/service/impl/ExecuteServiceImpl.java index 594d42b..1cde737 100644 --- a/src/main/java/com/mesa/reportservice/service/impl/ExecuteServiceImpl.java +++ b/src/main/java/com/mesa/reportservice/service/impl/ExecuteServiceImpl.java @@ -48,6 +48,8 @@ public class ExecuteServiceImpl implements ExecuteService { if (httpResult != null) { Map mapresult = JSON.parseObject(httpResult.getBody()); int queryStatus = Integer.parseInt(mapresult.get("status").toString()); + job.setExecuteStatus(Integer.parseInt(mapresult.get("code").toString())); + job.setResultMessage(mapresult.get("message").toString()); logger.info("httpCode=" + httpResult.getCode() +" status="+queryStatus); if (httpResult.getCode() == HttpStatus.OK.value() && queryStatus == HttpStatus.OK.value()) { k = 0; @@ -59,11 +61,9 @@ public class ExecuteServiceImpl implements ExecuteService { job.setResultBytes(Long.parseLong(rows.get("result_bytes").toString())); job.setResult(httpResult.getBody()); job.setElapsed((int) Float.parseFloat(rows.get("elapsed").toString())); - job.setExecuteStatus(Integer.parseInt(mapresult.get("code").toString())); logger.info("success resultId = " + job.getJobId() + " queryId=" + job.getQueryId() + " sql=" + job.getQuerySql()); } else { k = 0; - job.setExecuteStatus(Integer.parseInt(mapresult.get("code").toString())); logger.error("SQL Execution Error "); } } else { @@ -71,34 +71,34 @@ public class ExecuteServiceImpl implements ExecuteService { } } catch (SocketTimeoutException e) { k--; - job.setResultMessage(e.toString()); + job.setResultMessage(e.getMessage()); if (k == 0) { job.setExecuteStatus(Constant.JOB_EXECUTION_TIMEOUT); job.setResultMessage(Constant.QUERY_TIME_OUT); logger.info("timeout resultId = " + job.getJobId() + " queryId=" + job.getQueryId() + " sql=" + job.getQuerySql()); } else { - logger.info("Socket warn " + e.toString() + "retry time " + (3 - k)); + logger.info("Socket warn " + e.getMessage() + "retry time " + (3 - k)); } } catch (ConnectTimeoutException e) { job.setExecuteStatus(Constant.JOB_ERROR); - job.setResultMessage(e.toString()); - logger.error(SQSCode.UNKNOWN_ERROR.getMsg() + e.toString()); + job.setResultMessage(e.getMessage()); + logger.error(SQSCode.UNKNOWN_ERROR.getMsg() + e.getMessage()); k = 0; } catch (OutOfMemoryError e) { job.setExecuteStatus(Constant.JOB_ERROR); - job.setResultMessage(Constant.RESULT_TOO_LARGE); - logger.error(SQSCode.OUT_OF_MEMORY_ERROR.getMsg() + e.toString()); + job.setResultMessage(e.getMessage()); + logger.error(SQSCode.OUT_OF_MEMORY_ERROR.getMsg() + e.getMessage()); k = 0; } catch (Exception e) { job.setExecuteStatus(Constant.JOB_ERROR); - job.setResultMessage(e.toString()); - logger.error(SQSCode.UNKNOWN_ERROR.getMsg() + e.toString()); + job.setResultMessage(e.getMessage()); + logger.error(SQSCode.UNKNOWN_ERROR.getMsg() + e.getMessage()); k = 0; } try { queryGatewayService.deleteJob(job.getQueryId()); } catch (Exception e) { - logger.error(SQSCode.KILL_QUERY_ERROR.getMsg() + e.toString()); + logger.error(SQSCode.KILL_QUERY_ERROR.getMsg() + e.getMessage()); throw new SQSException(SQSCode.KILL_QUERY_ERROR); } } diff --git a/src/main/java/com/mesa/reportservice/service/impl/JobServiceImpl.java b/src/main/java/com/mesa/reportservice/service/impl/JobServiceImpl.java index 100b93f..2f0d2fb 100644 --- a/src/main/java/com/mesa/reportservice/service/impl/JobServiceImpl.java +++ b/src/main/java/com/mesa/reportservice/service/impl/JobServiceImpl.java @@ -1,7 +1,10 @@ package com.mesa.reportservice.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mesa.reportservice.bean.JobEntity; +import com.mesa.reportservice.exception.SQSCode; +import com.mesa.reportservice.exception.SQSException; import com.mesa.reportservice.mapper.JobMapper; import com.mesa.reportservice.service.JobService; import org.springframework.stereotype.Service; @@ -42,10 +45,16 @@ public class JobServiceImpl extends ServiceImpl<JobMapper, JobEntity> implements @Override public Map<String,Long> getJobCount(){ LocalDate currentDate = LocalDate.now(); - long lastUpdateTime = currentDate.atStartOfDay(ZoneOffset.UTC).toInstant().toEpochMilli(); - Map map = new HashMap<String,Object>(); - map.put("lastUpdateTime", lastUpdateTime); - return this.baseMapper.getJobCount(map); + long lastUpdateTime = currentDate.atStartOfDay(ZoneOffset.UTC).toInstant().toEpochMilli()/1000; + return this.baseMapper.getJobCount(lastUpdateTime); } + @Override + public Map<String,Object> getJobDetail(String jobId){ + Map<String,Object> jobState = this.baseMapper.getJobDetail(jobId); + if (ObjectUtil.isEmpty(jobState)) { + throw new SQSException(SQSCode.JOB_IS_NOT_EXIST); + } + return jobState; + } }
\ No newline at end of file diff --git a/src/main/java/com/mesa/reportservice/service/impl/MonitorServiceImpl.java b/src/main/java/com/mesa/reportservice/service/impl/MonitorServiceImpl.java index 0e57d84..d7bdff0 100644 --- a/src/main/java/com/mesa/reportservice/service/impl/MonitorServiceImpl.java +++ b/src/main/java/com/mesa/reportservice/service/impl/MonitorServiceImpl.java @@ -22,7 +22,7 @@ import java.util.Map; public class MonitorServiceImpl implements MonitorService { @Autowired - private JobService mysqlService; + private JobService jobService; @Autowired private ZookeeperService zookeeperService; @@ -54,10 +54,9 @@ public class MonitorServiceImpl implements MonitorService { } @Override - public String getJobCount() { - String json=""; + public MonitorEntity getJobCount() { MonitorEntity monitorEntity = new MonitorEntity(); - Map<String,Long> numMap = mysqlService.getJobCount(); + Map<String,Long> numMap = jobService.getJobCount(); monitorEntity.setQueueJobNum(numMap.get("queueNum")); monitorEntity.setExecutingJobNum(numMap.get("executingNum")); monitorEntity.setTodaySuccessJobNum(numMap.get("todaySuccessNum")); @@ -68,8 +67,6 @@ public class MonitorServiceImpl implements MonitorService { }else{ monitorEntity.setStatus("standby"); } - Object obj = JSONArray.toJSON(monitorEntity); - json = obj.toString(); - return json; + return monitorEntity; } } diff --git a/src/main/java/com/mesa/reportservice/service/impl/ScheduledResultServiceImpl.java b/src/main/java/com/mesa/reportservice/service/impl/ScheduledResultServiceImpl.java index c43981b..b5b6759 100644 --- a/src/main/java/com/mesa/reportservice/service/impl/ScheduledResultServiceImpl.java +++ b/src/main/java/com/mesa/reportservice/service/impl/ScheduledResultServiceImpl.java @@ -1,5 +1,6 @@ package com.mesa.reportservice.service.impl; +import cn.hutool.core.util.StrUtil; import cn.hutool.log.Log; import cn.hutool.log.LogFactory; import com.mesa.reportservice.bean.JobEntity; @@ -71,8 +72,8 @@ public class ScheduledResultServiceImpl implements ScheduledResultService { } } } catch (Exception e) { - logger.error(e.toString()); - throw new SQSException(e.toString()); + logger.error(e.getMessage()); + throw new SQSException(e.getMessage()); } } @@ -104,7 +105,7 @@ public class ScheduledResultServiceImpl implements ScheduledResultService { //遍历内存中的任务对状态RUNNING的更新进度,其他更新数据库的状态 for (Map.Entry<String, JobEntity> entry : schedulerProperties.getMapResult().entrySet()) { logger.info("key = " + entry.getKey() + ", value = " + entry.getValue().getState()); - long currentTime = System.currentTimeMillis(); + long currentTime = System.currentTimeMillis()/1000; long executeTime = currentTime - entry.getValue().getStartTime(); logger.info("execute time=" + executeTime + "ttlTime=" + httpClientPool.getSocketTimeout()); if (JobStates.RUNNING.getValue().equals(entry.getValue().getState()) && executeTime > httpClientPool.getSocketTimeout()) { @@ -148,7 +149,7 @@ public class ScheduledResultServiceImpl implements ScheduledResultService { job.setEndTime(System.currentTimeMillis()/1000); job.setDoneProgress(1.00f); job.setIsFailed(1); - job.setResultMessage(Constant.UNKNOWN_ERROR); + job.setResultMessage(StrUtil.concat(false,Constant.UNKNOWN_ERROR,": queryId is null")); } if ((JobStates.RUNNING.getValue()).equals(job.getState())) { if (jobService.updateProcesses(job) != 0) { diff --git a/src/main/java/com/mesa/reportservice/util/R.java b/src/main/java/com/mesa/reportservice/util/R.java new file mode 100644 index 0000000..df411e9 --- /dev/null +++ b/src/main/java/com/mesa/reportservice/util/R.java @@ -0,0 +1,93 @@ +package com.mesa.reportservice.util; + +import com.mesa.reportservice.exception.SQSCode; +import com.mesa.reportservice.exception.SQSException; + +import java.util.Date; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; + + +/** + * 返回数据 + * + * 错误码、错误内容统一在枚举类SQSCode中定义, 错误码格式见SQSCode注释,错误码内容必须用英文,作为国际化的code + * 自定义的错误类型必须加注释 + */ +public class R extends HashMap<String, Object> { + private static final long serialVersionUID = 1L; + + public R() { + put("code", SQSCode.SUCCESS.getCode()); + put("message", SQSCode.SUCCESS.getMsg()); + put("time", new Date()); + } + + public static R error() { + return error(SQSCode.ERROR.getCode(), SQSCode.ERROR.getMsg()); + } + + public static R error(SQSCode SQSCode) { + R r = new R(); + r.put("code", SQSCode.getCode()); + r.put("message", SQSCode.getMsg()); + r.put("time", new Date()); + return r; + } + + public static R error(Integer code, String msg) { + R r = new R(); + r.put("code", code); + r.put("message", msg); + r.put("time", new Date()); + return r; + } + + public static R ok(String msg) { + R r = new R(); + r.put("message", msg); + r.put("time", new Date()); + return r; + } + + public static R ok() { + return new R(); + } + + public static R ok(Object data) { + R r = new R(); + r.put("data", data); + r.put("time", new Date()); + return r; + } + + @Override + public R put(String key, Object value) { + super.put(key, value); + return this; + } + + @SuppressWarnings("unchecked") + public R putData(String key,Object value) { + Object data = super.getOrDefault("data", new LinkedHashMap<String, Object>()); + if( !(data instanceof Map)) { + throw new SQSException("data put error"); + } + ((Map<String, Object>)data).put(key, value); + super.put("data", data); + return this; + } + + @SuppressWarnings("unchecked") + public R putDataAll(Map<String,Object> dataAll) { + Object data = super.getOrDefault("data", new LinkedHashMap<String, Object>()); + if( !(data instanceof Map)) { + throw new SQSException("data putAll error"); + } + ((Map<String, Object>)data).putAll(dataAll);; + super.put("data", data); + return this; + } +} + diff --git a/src/main/resources/mappers/JobMapper.xml b/src/main/resources/mappers/JobMapper.xml index 9017d60..f4be7e3 100644 --- a/src/main/resources/mappers/JobMapper.xml +++ b/src/main/resources/mappers/JobMapper.xml @@ -81,10 +81,6 @@ where job_id = #{jobId,jdbcType=VARCHAR} </update> - - - - <update id="updateStatue" parameterType="com.mesa.reportservice.bean.JobEntity" > update saved_query_job <set > @@ -107,11 +103,16 @@ where job_id = #{jobId,jdbcType=VARCHAR} </update> - - <select id="getJobCount" resultType="map" parameterType="hashmap"> + <select id="getJobCount" resultType="map" parameterType="long"> SELECT (SELECT COUNT(1) FROM saved_query_job where state = 'PENDING' and is_valid = 1) as queueNum, (SELECT COUNT(1) FROM saved_query_job where state = 'RUNNING' and is_valid = 1) as executingNum, (SELECT COUNT(1) FROM saved_query_job where state = 'DONE' and is_failed = 0 and last_update_time > #{lastUpdateTime}) as todaySuccessNum, (SELECT COUNT(1) FROM saved_query_job where is_failed = 1 and last_update_time > #{lastUpdateTime} ) as todayErrorNum </select> + + <select id="getJobDetail" resultType="map" parameterType="String"> + SELECT + <include refid="Base_Column_List" /> + FROM saved_query_job WHERE job_id = #{jobId} + </select> </mapper>
\ No newline at end of file diff --git a/src/test/java/com/mesa/reportservice/service/impl/JobServiceImplTest.java b/src/test/java/com/mesa/reportservice/service/impl/JobServiceImplTest.java index 6957883..95fc879 100644 --- a/src/test/java/com/mesa/reportservice/service/impl/JobServiceImplTest.java +++ b/src/test/java/com/mesa/reportservice/service/impl/JobServiceImplTest.java @@ -1,8 +1,11 @@ package com.mesa.reportservice.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.mesa.ReportServiceApplicationTests; import com.mesa.reportservice.bean.JobEntity; import com.mesa.reportservice.enums.JobStates; +import com.mesa.reportservice.exception.SQSCode; +import com.mesa.reportservice.exception.SQSException; import com.mesa.reportservice.service.JobService; import org.junit.Assert; import org.junit.Test; @@ -48,15 +51,29 @@ public class JobServiceImplTest extends ReportServiceApplicationTests { @Test public void testUpdateProcessesSuccess() { - JobEntity job = this.jsonToInParameter("parameters/mysqlTest.json", "updateProcessesSuccessJob", JobEntity.class); + JobEntity job = this.jsonToInParameter("parameters/jobTest.json", "updateProcessesSuccessJob", JobEntity.class); int i = jobService.updateProcesses(job); Assert.assertEquals(updateProcessesSuccess,i); } @Test public void testUpdateProcessesError() { - JobEntity job = this.jsonToInParameter("parameters/mysqlTest.json", "updateProcessesErrorJob", JobEntity.class); + JobEntity job = this.jsonToInParameter("parameters/jobTest.json", "updateProcessesErrorJob", JobEntity.class); int i = jobService.updateProcesses(job); Assert.assertNotEquals(updateProcessesSuccess,i); } + + @Test + public void testGetJobState() { + String successId = this.jsonToInParameter("parameters/jobTest.json", "getJobDetailSuccessId", String.class); + Map<String, Object> success = jobService.getJobDetail(successId); + Assert.assertTrue(ObjectUtil.isNotEmpty(success)); + + String errorId = this.jsonToInParameter("parameters/jobTest.json", "getJobDetailErrorId", String.class); + try { + jobService.getJobDetail(errorId); + } catch (SQSException e) { + Assert.assertTrue(e.getCode()==SQSCode.JOB_IS_NOT_EXIST.getCode()); + } + } } diff --git a/src/test/resources/parameters/mysqlTest.json b/src/test/resources/parameters/jobTest.json index 7ed1831..04f32b9 100644 --- a/src/test/resources/parameters/mysqlTest.json +++ b/src/test/resources/parameters/jobTest.json @@ -46,5 +46,7 @@ "result": "", "memoryUsage": "", "queryDurationMs": "" - } + }, + "getJobDetailSuccessId": "00838b9d94552afecc6fa29cde033714", + "getJobDetailErrorId": "00838b9d94552afecc6fa29cde033715" }
\ No newline at end of file |
