refactor(cache/redisson): 移除 RedisUtils 中的 Lock 相关工具方法(统一使用 RedisLockUtils)

This commit is contained in:
2025-07-26 23:12:46 +08:00
parent 48783db422
commit cff4f02d96
2 changed files with 29 additions and 98 deletions

View File

@@ -25,9 +25,10 @@ import top.continew.starter.core.util.SpringUtils;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
/** /**
* Redisson分布式锁 工具类 * Redisson 分布式锁工具类
* *
* @author lishuyan * @author lishuyan
* @since 2.13.4
*/ */
public class RedisLockUtils implements AutoCloseable { public class RedisLockUtils implements AutoCloseable {

View File

@@ -26,8 +26,6 @@ import java.time.Duration;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.function.Consumer; import java.util.function.Consumer;
/** /**
@@ -52,42 +50,6 @@ public class RedisUtils {
return CLIENT; return CLIENT;
} }
/**
* 发布消息
*
* @param name 主题名称
* @param msg 发送数据
* @param consumer 自定义处理
*/
public static <T> void publish(String name, T msg, Consumer<T> consumer) {
RTopic topic = CLIENT.getTopic(name);
topic.publish(msg);
consumer.accept(msg);
}
/**
* 发布消息
*
* @param name 主题名称
* @param msg 发送数据
*/
public static <T> void publish(String name, T msg) {
RTopic topic = CLIENT.getTopic(name);
topic.publish(msg);
}
/**
* 订阅消息
*
* @param name 主题名称
* @param clazz 消息类型
* @param consumer 自定义处理
*/
public static <T> void subscribe(String name, Class<T> clazz, Consumer<T> consumer) {
RTopic topic = CLIENT.getTopic(name);
topic.addListener(clazz, (channel, msg) -> consumer.accept(msg));
}
/** /**
* 设置缓存 * 设置缓存
* *
@@ -559,77 +521,45 @@ public class RedisUtils {
} }
/** /**
* 尝试获取锁 * 发布消息
* *
* @param key * @param name 主题名称
* @param expireTime 锁过期时间(单位:毫秒) * @param msg 发送数据
* @param timeout 获取锁超时时间(单位:毫秒) * @param consumer 自定义处理
* @return true成功false失败 * @author lishuyan
* @since 2.7.2 * @since 2.13.4
*/ */
public static boolean tryLock(String key, long expireTime, long timeout) { public static <T> void publish(String name, T msg, Consumer<T> consumer) {
return tryLock(key, expireTime, timeout, TimeUnit.MILLISECONDS); RTopic topic = CLIENT.getTopic(name);
topic.publish(msg);
consumer.accept(msg);
} }
/** /**
* 释放锁 * 发布消息
* *
* @param key 键 * @param name 主题名称
* @return true释放成功false释放失败 * @param msg 发送数据
* @since 2.7.2 * @author lishuyan
* @since 2.13.4
*/ */
public static boolean unlock(String key) { public static <T> void publish(String name, T msg) {
RLock lock = getLock(key); RTopic topic = CLIENT.getTopic(name);
return unlock(lock); topic.publish(msg);
} }
/** /**
* 尝试获取锁 * 订阅消息
* *
* @param key * @param name 主题名称
* @param expireTime 锁过期时间 * @param clazz 消息类型
* @param timeout 获取锁超时时间 * @param consumer 自定义处理
* @param unit 时间单位 * @author lishuyan
* @return true成功false失败 * @since 2.13.4
* @since 2.7.2
*/ */
public static boolean tryLock(String key, long expireTime, long timeout, TimeUnit unit) { public static <T> void subscribe(String name, Class<T> clazz, Consumer<T> consumer) {
RLock lock = getLock(key); RTopic topic = CLIENT.getTopic(name);
try { topic.addListener(clazz, (channel, msg) -> consumer.accept(msg));
return lock.tryLock(timeout, expireTime, unit);
} catch (InterruptedException e) {
return false;
}
}
/**
* 释放锁
*
* @param lock 锁实例
* @return true释放成功false释放失败
* @since 2.7.2
*/
public static boolean unlock(RLock lock) {
if (lock.isHeldByCurrentThread()) {
try {
lock.unlockAsync().get();
return true;
} catch (ExecutionException | InterruptedException e) {
return false;
}
}
return false;
}
/**
* 获取锁实例
*
* @param key 键
* @return 锁实例
* @since 2.7.2
*/
public static RLock getLock(String key) {
return CLIENT.getLock(key);
} }
/** /**