summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorwangkuan <[email protected]>2021-01-04 11:33:20 +0800
committerwangkuan <[email protected]>2021-01-04 11:33:20 +0800
commit7f6884f6f75ed8ad3eb3336f4f9896066cc41285 (patch)
tree5584d3e27f78812cd5501dfd7d8a1eee265765b0 /src
parent748e36cffb446568b0089b455f2eceda3c883a52 (diff)
操作数据库时间过长导致bug
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/mesa/reportservice/controller/ScheduledResultController.java35
-rw-r--r--src/main/java/com/mesa/reportservice/service/impl/ExcuteserviceImpl.java34
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);