From 97d99b76bdde8952cf257c3c85c1a8a080927af4 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期一, 31 三月 2025 16:44:22 +0800
Subject: [PATCH] 修改反馈文档bug

---
 ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/service/RedisService.java |   38 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 38 insertions(+), 0 deletions(-)

diff --git a/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/service/RedisService.java b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/service/RedisService.java
index 5d3ad86..46b77f3 100644
--- a/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/service/RedisService.java
+++ b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/service/RedisService.java
@@ -6,6 +6,8 @@
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.TimeUnit;
+
+import org.apache.logging.log4j.core.util.UuidUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.BoundSetOperations;
 import org.springframework.data.redis.core.HashOperations;
@@ -273,4 +275,40 @@
     {
         return redisTemplate.keys(pattern);
     }
+    
+    
+    /**
+     * 加锁
+     * @param key
+     * @return
+     */
+    public boolean lock(String key){
+        Boolean hasKey = redisTemplate.hasKey(key);
+        if(!hasKey){
+            redisTemplate.opsForValue().set(key, UuidUtil.getTimeBasedUuid().toString());
+            return true;
+        }
+        //30秒的等待
+        for (int i = 0; i < 60; i++) {
+            hasKey = redisTemplate.hasKey(key);
+            if(!hasKey){
+                redisTemplate.opsForValue().set(key, UuidUtil.getTimeBasedUuid().toString());
+                return true;
+            }
+            try {
+                Thread.sleep(500);
+            } catch (InterruptedException e) {
+                throw new RuntimeException(e);
+            }
+        }
+        return false;
+    }
+    
+    /**
+     * 解锁
+     * @param key
+     */
+    public void unlock(String key){
+        redisTemplate.delete(key);
+    }
 }

--
Gitblit v1.7.1