浏览代码

feat: del lock logic

shc 4 月之前
父节点
当前提交
344d3e8724

+ 13 - 4
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/task/WmTaskControllerV2.java

@@ -162,7 +162,7 @@ public class WmTaskControllerV2 {
 
     String lockKey = "task_opt:check:" + checkReq.getTaskId() + ":" + checkReq.getNodeId();
     Boolean locked =
-        redisTemplate.opsForValue().setIfAbsent(lockKey, lockInfo /*, 10, TimeUnit.MINUTES*/);
+        redisTemplate.opsForValue().setIfAbsent(lockKey, lockInfo, 60 * 60 * 24, TimeUnit.SECONDS);
 
     if (Boolean.FALSE.equals(locked)) {
       throw new BizException(
@@ -176,8 +176,13 @@ public class WmTaskControllerV2 {
     // 发起审核
     try {
       taskManager.doSingleCheck(checkReq, user);
-    } finally {
-      redisTemplate.delete(lockKey);
+    } catch (Exception e) {
+      log.error(e.getMessage(), e);
+      if (e instanceof BizException) {
+        throw (BizException) e;
+      } else {
+        redisTemplate.delete(lockKey);
+      }
     }
 
     return ok(Boolean.TRUE);
@@ -353,7 +358,11 @@ public class WmTaskControllerV2 {
       taskManager.doBatchCheck(checkReq, user);
     } catch (Exception e) {
       log.error(e.getMessage(), e);
-      redisTemplate.delete(lockKeys.keySet());
+      if (e instanceof BizException) {
+        throw (BizException) e;
+      } else {
+        redisTemplate.delete(lockKeys.keySet());
+      }
     }
     //   finally {
     //     不论审核结果如何都不删除锁了