Просмотр исходного кода

锁存在且是当前线程再解锁

yzc 2 лет назад
Родитель
Сommit
e8b1b51cfa

+ 4 - 2
sckw-common/sckw-common-redis/src/main/java/com/sckw/redis/utils/RedissonUtils.java

@@ -278,10 +278,12 @@ public class RedissonUtils {
      */
     public static void unlock(String lockKey) {
         RLock lock = redissonUtils.redissonClient.getLock(lockKey);
-        lock.unlock();
+        if (lock.isLocked() && lock.isHeldByCurrentThread()) {
+            lock.unlock();
+        }
     }
 
-    public static Long getAtomicLong(String name,Long expired) {
+    public static Long getAtomicLong(String name, Long expired) {
         RAtomicLong atomicLong = redissonUtils.redissonClient.getAtomicLong(name);
         long number = atomicLong.incrementAndGet();
         atomicLong.expire(expired <= 0 ? Duration.ofSeconds(DEFAULT_EXPIRED) : Duration.ofSeconds(expired));