From eaa4e5993195fc8f01daacfc827f7f350f28962e Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 10 四月 2025 16:21:44 +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