Browse Source

修复系统检查一直返回失败的问题

欧阳劲驰 2 months ago
parent
commit
b6f3b56ac8

+ 22 - 13
src/main/java/com/shkpr/service/alambizplugin/bizservice/GisSurveySystemCheckBizService.java

@@ -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);
+    }
 }