|
@@ -87,8 +87,11 @@ public class GisSurveySystemCheckBizService {
|
|
|
try {
|
|
|
//获取结果,并检查失败
|
|
|
GisSurveySystemCheckResult gisSurveySystemCheckResult = previousFuture.get();
|
|
|
- if (Objects.equals(gisSurveySystemCheckResult.getCheckStatus(), GisSurveyCheckStatusEnum.FAIL.getCode()))
|
|
|
+ if (Objects.equals(gisSurveySystemCheckResult.getCheckStatus(), GisSurveyCheckStatusEnum.FAIL.getCode())) {
|
|
|
+ //删除缓存信息
|
|
|
+ removeCache(systemCheckId);
|
|
|
return gisSurveySystemCheckResult;
|
|
|
+ }
|
|
|
} catch (InterruptedException | ExecutionException e) {
|
|
|
//打印报错信息(不太可能走到这)
|
|
|
LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR, mBizType, mStrClassName
|
|
@@ -210,11 +213,8 @@ public class GisSurveySystemCheckBizService {
|
|
|
//获取已存在的任务
|
|
|
ListenableFuture<GisSurveySystemCheckResult> previousFuture = TASK_CACHE.get(systemCheckId);
|
|
|
//已结束判断,删除缓存
|
|
|
- if (previousFuture != null && (previousFuture.isDone() || previousFuture.isCancelled())) {
|
|
|
- TASK_CACHE.remove(systemCheckId);
|
|
|
- SUBTASK_CACHE.remove(systemCheckId);
|
|
|
- TIME_CACHE.remove(systemCheckId);
|
|
|
- }
|
|
|
+ if (previousFuture != null && (previousFuture.isDone() || previousFuture.isCancelled()))
|
|
|
+ removeCache(systemCheckId);
|
|
|
//异步执行系统检查任务
|
|
|
ListenableFuture<GisSurveySystemCheckResult> checkFuture = systemChecker.systemCheckTask(params,
|
|
|
//缓存子任务句柄
|
|
@@ -231,25 +231,34 @@ public class GisSurveySystemCheckBizService {
|
|
|
/**
|
|
|
* 停止任务
|
|
|
*
|
|
|
- * @param taskId 任务id
|
|
|
+ * @param systemCheckId 系统检查id
|
|
|
* @return 关闭状态
|
|
|
*/
|
|
|
- private Boolean stopTask(GisSurveySystemCheckId taskId) {
|
|
|
- ListenableFuture<GisSurveySystemCheckResult> future = TASK_CACHE.get(taskId);
|
|
|
+ private Boolean stopTask(GisSurveySystemCheckId systemCheckId) {
|
|
|
+ ListenableFuture<GisSurveySystemCheckResult> future = TASK_CACHE.get(systemCheckId);
|
|
|
//完成判断,完成删除缓存
|
|
|
if (future.isCancelled() || future.isDone()) {
|
|
|
- TASK_CACHE.remove(taskId);
|
|
|
- TIME_CACHE.remove(taskId);
|
|
|
+ removeCache(systemCheckId);
|
|
|
return true;
|
|
|
}
|
|
|
//尝试清除任务
|
|
|
boolean cancel = future.cancel(true);
|
|
|
//清除成功,删除缓存
|
|
|
if (cancel) {
|
|
|
- TASK_CACHE.remove(taskId);
|
|
|
- TIME_CACHE.remove(taskId);
|
|
|
+ removeCache(systemCheckId);
|
|
|
return true;
|
|
|
}
|
|
|
return false;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 清除缓存
|
|
|
+ *
|
|
|
+ * @param systemCheckId 系统检查id
|
|
|
+ */
|
|
|
+ private void removeCache(GisSurveySystemCheckId systemCheckId) {
|
|
|
+ TASK_CACHE.remove(systemCheckId);
|
|
|
+ SUBTASK_CACHE.remove(systemCheckId);
|
|
|
+ TIME_CACHE.remove(systemCheckId);
|
|
|
+ }
|
|
|
}
|