diff options
| author | wangkuan <[email protected]> | 2021-01-04 11:33:20 +0800 |
|---|---|---|
| committer | wangkuan <[email protected]> | 2021-01-04 11:33:20 +0800 |
| commit | 7f6884f6f75ed8ad3eb3336f4f9896066cc41285 (patch) | |
| tree | 5584d3e27f78812cd5501dfd7d8a1eee265765b0 /src | |
| parent | 748e36cffb446568b0089b455f2eceda3c883a52 (diff) | |
操作数据库时间过长导致bug
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/java/com/mesa/reportservice/controller/ScheduledResultController.java | 35 | ||||
| -rw-r--r-- | src/main/java/com/mesa/reportservice/service/impl/ExcuteserviceImpl.java | 34 |
2 files changed, 37 insertions, 32 deletions
diff --git a/src/main/java/com/mesa/reportservice/controller/ScheduledResultController.java b/src/main/java/com/mesa/reportservice/controller/ScheduledResultController.java index b5ca8b9..387f403 100644 --- a/src/main/java/com/mesa/reportservice/controller/ScheduledResultController.java +++ b/src/main/java/com/mesa/reportservice/controller/ScheduledResultController.java @@ -48,8 +48,6 @@ public class ScheduledResultController { for (JobEntity jobEntity : joblist) { String sql = jobEntity.getQuerySql().trim(); sql = sql.replace("$exe_time", "toDateTime('" + jobEntity.getIssuedTime().trim() + "')"); - sql = sql.replace("$start_time", "toDateTime('" + jobEntity.getStartTime().trim() + "')"); - sql = sql.replace("$end_time", "toDateTime('" + jobEntity.getEndTime().trim() + "')"); String queryid = DigestUtils.md5Hex(jobEntity.getResultId() + sql); jobEntity.setQuery_id(queryid); @@ -97,12 +95,33 @@ public class ScheduledResultController { logger.info("开始执行任务"); long begintime = System.currentTimeMillis(); job.setBeginTime(begintime); - pool.execute(new Runnable() { - @Override - public void run() { - es.excuteCkTask(job); - } - }); + String sql = job.getQuerySql().trim(); + sql = sql.replace("$exe_time", "toDateTime('" + job.getIssuedTime().trim() + "')"); + job.setQuerySql(sql); + String queryid = DigestUtils.md5Hex(job.getResultId() + sql); + job.setQuery_id(queryid); + job.setQuerySql(sql); + job.setStatus(1); + job.setExcute_status(1); + job.setExcuteDetail("EXECUTING"); + job.setExcuteRow(0L); + job.setExcuteTime(0); + job.setExcuteProcess(0); + job.setResultRows(0); + if(ms.updateProcesses(job)!=0){ + GlobelConfig.mapresult.put(queryid, job); + pool.execute(new Runnable() { + @Override + public void run() { + es.excuteCkTask(job); + } + }); + }else{ + logger.error("更新数据库状态失败"); + + } + + } } else { logger.info("无待执行任务"); diff --git a/src/main/java/com/mesa/reportservice/service/impl/ExcuteserviceImpl.java b/src/main/java/com/mesa/reportservice/service/impl/ExcuteserviceImpl.java index 7a7d4f9..10769a1 100644 --- a/src/main/java/com/mesa/reportservice/service/impl/ExcuteserviceImpl.java +++ b/src/main/java/com/mesa/reportservice/service/impl/ExcuteserviceImpl.java @@ -39,24 +39,8 @@ public class ExcuteserviceImpl implements ExcuteService { public void excuteCkTask(JobEntity job) { - String sql = job.getQuerySql().trim(); - sql = sql.replace("$exe_time", "toDateTime('" + job.getIssuedTime().trim() + "')"); - sql = sql.replace("$start_time", "toDateTime('" + job.getStartTime().trim() + "')"); - sql = sql.replace("$end_time", "toDateTime('" + job.getEndTime().trim() + "')"); - job.setQuerySql(sql); - String queryid = DigestUtils.md5Hex(job.getResultId() + sql); - job.setQuery_id(queryid); - job.setQuerySql(sql); - job.setStatus(1); - job.setExcute_status(1); - job.setExcuteDetail("EXECUTING"); - job.setExcuteRow(0L); - job.setExcuteTime(0); - job.setExcuteProcess(0); - job.setResultRows(0); - GlobelConfig.mapresult.put(queryid, job); - ms.updateProcesses(job); - logger.info("execute queryid=" + queryid + " sql=" + sql + "mapresult size=" + GlobelConfig.mapresult.size()); + + logger.info("execute queryid=" + job.getQuery_id() + " sql=" + job.getQuerySql() + "mapresult size=" + GlobelConfig.mapresult.size()); String joburl = getJobUrl(job.getQuerySql(), job.getResultId()); String killurl = ClickhouseConfig.getKillUrl(job.getQuery_id()); HttpResult hr = new HttpResult(); @@ -84,7 +68,7 @@ public class ExcuteserviceImpl implements ExcuteService { job.setResult(hr.getBody()); job.setExcuteTime((int) Float.parseFloat(rows.get("elapsed").toString())); job.setExcute_status(Integer.parseInt(mapresult.get("code").toString())); - logger.info("success resultid = "+job.getResultId()+" queryid=" + queryid + " sql=" + sql); + logger.info("success resultid = "+job.getResultId()+" queryid=" + job.getQuery_id() + " sql=" + job.getQuerySql()); } } catch (SocketTimeoutException e) { @@ -93,7 +77,7 @@ public class ExcuteserviceImpl implements ExcuteService { if (k == 0) { job.setExcute_status(500001); job.setExcuteDetail("SQL Execution Error excute query time out"); - logger.info("timeout resultid = "+job.getResultId()+" queryid=" + queryid + " sql=" + sql); + logger.info("timeout resultid = "+job.getResultId()+" queryid=" + job.getQuery_id() + " sql=" + job.getQuerySql()); } else { logger.info("Socket warn " + e.toString() + "retry time " + (3 - k)); } @@ -119,10 +103,12 @@ public class ExcuteserviceImpl implements ExcuteService { k = 0; } - try { - cs.QuerySystemForDelete(killurl); - } catch (Exception e) { - logger.error("Kill Query Error" + e.toString()); + if(hr.getCode() != 200) { + try { + cs.QuerySystemForDelete(killurl); + } catch (Exception e) { + logger.error("Kill Query Error" + e.toString()); + } } } while (k > 0); |
