From d22bbb827940050d4df2bf3fb16dae79eba91d4e Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期二, 12 十一月 2024 18:45:15 +0800
Subject: [PATCH] 批量审核bug,离线时间点回显
---
ycl-server/src/main/java/com/ycl/utils/redis/RedisCache.java | 32 ++++++++++++++++++++++++++++++++
1 files changed, 32 insertions(+), 0 deletions(-)
diff --git a/ycl-server/src/main/java/com/ycl/utils/redis/RedisCache.java b/ycl-server/src/main/java/com/ycl/utils/redis/RedisCache.java
index b30193b..5a6f3d2 100644
--- a/ycl-server/src/main/java/com/ycl/utils/redis/RedisCache.java
+++ b/ycl-server/src/main/java/com/ycl/utils/redis/RedisCache.java
@@ -262,4 +262,36 @@
{
return redisTemplate.keys(pattern);
}
+
+ /**
+ * 灏濊瘯鑾峰彇閿�
+ *
+ * @param lockKey 閿佺殑閿�
+ * @param requestId 璇锋眰鏍囪瘑锛岀敤浜庡尯鍒嗕笉鍚岀殑閿佹寔鏈夎��
+ * @param expireTime 閿佺殑杩囨湡鏃堕棿锛屽崟浣嶄负姣
+ * @return 濡傛灉鎴愬姛鑾峰彇閿侊紝杩斿洖 true锛涘惁鍒欒繑鍥� false
+ */
+ public boolean acquireLock(String lockKey, String requestId, long expireTime) {
+ // 浣跨敤 setIfAbsent 鏂规硶灏濊瘯璁剧疆閿�煎锛屽鏋滈敭涓嶅瓨鍦ㄥ垯璁剧疆鎴愬姛骞惰繑鍥� true锛屽惁鍒欒繑鍥� false
+ Boolean result = redisTemplate.opsForValue().setIfAbsent(lockKey, requestId, expireTime, TimeUnit.MILLISECONDS);
+ return result != null && result;
+ }
+
+ /**
+ * 閲婃斁閿�
+ *
+ * @param lockKey 閿佺殑閿�
+ * @param requestId 璇锋眰鏍囪瘑锛岀敤浜庣‘淇濆彧鏈夐攣鐨勬寔鏈夎�呮墠鑳介噴鏀鹃攣
+ * @return 濡傛灉鎴愬姛閲婃斁閿侊紝杩斿洖 true锛涘惁鍒欒繑鍥� false
+ */
+ public boolean releaseLock(String lockKey, String requestId) {
+ // 鑾峰彇褰撳墠閿佺殑鍊�
+ String currentValue = (String) redisTemplate.opsForValue().get(lockKey);
+ // 妫�鏌ュ綋鍓嶉攣鐨勫�兼槸鍚︾瓑浜庤姹傛爣璇嗭紝纭繚鍙湁閿佺殑鎸佹湁鑰呮墠鑳介噴鏀鹃攣
+ if (currentValue != null && currentValue.equals(requestId)) {
+ // 鍒犻櫎閿侀敭
+ return Boolean.TRUE.equals(redisTemplate.delete(lockKey));
+ }
+ return false;
+ }
}
--
Gitblit v1.8.0