ting.yin преди 4 години
родител
ревизия
61f9c5f8f7

+ 2 - 15
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/service/Impl/MarkServiceImpl.java

@@ -197,11 +197,9 @@ public class MarkServiceImpl implements MarkService {
         if (group.getStatus() == MarkStatus.TRIAL) {
             TaskLock taskLock = TaskLockUtil.getTrialTask(getGroupKey(group));
             taskLock.clear();
-            TaskLockUtil.addTrialTask(getGroupKey(group), taskLock);
         } else if (group.getStatus() == MarkStatus.FORMAL) {
             TaskLock taskLock = TaskLockUtil.getFormalTask(getGroupKey(group));
             taskLock.clear();
-            TaskLockUtil.addFormalTask(getGroupKey(group), taskLock);
         }
     }
 
@@ -319,11 +317,7 @@ public class MarkServiceImpl implements MarkService {
         // }
         // return FormalTaskUtil.add(marker, getApplyTaskId(library));
         TaskLock taskLock = TaskLockUtil.getFormalTask(getGroupKey(marker));
-        if (taskLock.add(getApplyTaskId(library), library.getTaskNumber(), marker.getId())) {
-            TaskLockUtil.addFormalTask(getGroupKey(marker), taskLock);
-            return true;
-        }
-        return false;
+        return taskLock.add(getApplyTaskId(library), library.getTaskNumber(), marker.getId());
     }
 
     /**
@@ -338,11 +332,7 @@ public class MarkServiceImpl implements MarkService {
     @Override
     public boolean applyLibrary(TrialLibrary library, Marker marker) {
         TaskLock taskLock = TaskLockUtil.getTrialTask(getGroupKey(marker));
-        if (taskLock.add(getApplyTaskId(library, marker), 1, marker.getId())) {
-            TaskLockUtil.addTrialTask(getGroupKey(marker), taskLock);
-            return true;
-        }
-        return false;
+        return taskLock.add(getApplyTaskId(library, marker), 1, marker.getId());
     }
 
     /**
@@ -388,7 +378,6 @@ public class MarkServiceImpl implements MarkService {
         TaskLock taskLock = TaskLockUtil.getFormalTask(getGroupKey(marker));
         taskLock.remove(getApplyTaskId(library), library.getTaskNumber(), marker.getId());
         taskLock.refresh(marker.getId());
-        TaskLockUtil.addFormalTask(getGroupKey(marker), taskLock);
     }
 
     /**
@@ -403,7 +392,6 @@ public class MarkServiceImpl implements MarkService {
     public void releaseLibrary(TrialLibrary library, Marker marker) {
         TaskLock taskLock = TaskLockUtil.getTrialTask(getGroupKey(marker));
         taskLock.remove(getApplyTaskId(library, marker), 1, marker.getId());
-        TaskLockUtil.addTrialTask(getGroupKey(marker), taskLock);
     }
 
     /**
@@ -416,7 +404,6 @@ public class MarkServiceImpl implements MarkService {
     public void releaseByMarker(Marker marker) {
         TaskLock taskLock = TaskLockUtil.getFormalTask(getGroupKey(marker));
         taskLock.clear(marker.getId());
-        TaskLockUtil.addFormalTask(getGroupKey(marker), taskLock);
     }
 
     /**

+ 2 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/utils/TaskLock.java

@@ -26,11 +26,11 @@ public class TaskLock {
             while (true) {
                 // id+number,只能被一个owner获取
                 if (node.isId(id) && node.isNumber(number)) {
-                    return node.isOwner(owner);
+                    return false;
                 }
                 // id只能被一个owner领取一个number
                 else if (node.isId(id) && node.isOwner(owner)) {
-                    return node.isNumber(number);
+                    return false;
                 }
                 // 跳到下一个node
                 else if (node.hasNext()) {

+ 14 - 11
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/utils/TaskLockUtil.java

@@ -33,22 +33,25 @@ public class TaskLockUtil {
     }
 
     public static TaskLock getTrialTask(String key) {
-        return trialTaskMap.get(key) == null ? new TaskLock() : trialTaskMap.get(key);
-    }
-
-    public static TaskLock getFormalTask(String key) {
-        return formalTaskMap.get(key) == null ? new TaskLock() : formalTaskMap.get(key);
-    }
-
-    public static void addFormalTask(String key, TaskLock value) {
         synchronized (TaskLockUtil.class) {
-            formalTaskMap.put(key, value);
+            TaskLock taskLock = trialTaskMap.get(key);
+            if (taskLock == null) {
+                taskLock = new TaskLock();
+                trialTaskMap.put(key, taskLock);
+            }
+            return taskLock;
         }
     }
 
-    public static void addTrialTask(String key, TaskLock value) {
+    public static TaskLock getFormalTask(String key) {
         synchronized (TaskLockUtil.class) {
-            trialTaskMap.put(key, value);
+            TaskLock taskLock = formalTaskMap.get(key);
+            if (taskLock == null) {
+                taskLock = new TaskLock();
+                formalTaskMap.put(key, taskLock);
+            }
+            return taskLock;
         }
     }
+
 }