疯狂的狮子li
2021-06-10 f6ccfe6ed3fa97d62c7fe9b10279ab0d59e80319
update 独立 CountDownLatch 方法
已修改1个文件
15 ■■■■ 文件已修改
ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisLockManager.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisLockManager.java
@@ -33,11 +33,6 @@
    private final static Integer FAIR_LOCK = 2;
    /**
     * 计数锁
     */
    private final static Integer COUNT_LOCK = 3;
    /**
     * 存放当前线程获取锁的类型
     */
    private final ThreadLocal<Integer> threadLocal = new ThreadLocal<>();
@@ -45,20 +40,18 @@
    /**
     * 获取锁
     */
    private <T> T getLock(String key, Integer lockType) {
    private RLock getLock(String key, Integer lockType) {
        Assert.isTrue(StrUtil.isNotBlank(key), "key不能为空");
        threadLocal.set(lockType);
        Object lock;
        RLock lock;
        if (BASE_LOCK.equals(lockType)) {
            lock = redissonClient.getLock(key);
        } else if (FAIR_LOCK.equals(lockType)) {
            lock = redissonClient.getFairLock(key);
        } else if (COUNT_LOCK.equals(lockType)) {
            lock = redissonClient.getCountDownLatch(key);
        } else {
            throw new RuntimeException("锁不存在!");
        }
        return (T)lock;
        return lock;
    }
    /**
@@ -118,7 +111,7 @@
     */
    public RCountDownLatch getCountDownLatch(String key, long count) {
        Assert.isTrue(count >= 0, "count数量必须大于等于0");
        RCountDownLatch rCountDownLatch = getLock(key, COUNT_LOCK);
        RCountDownLatch rCountDownLatch = redissonClient.getCountDownLatch(key);
        rCountDownLatch.trySetCount(count);
        return rCountDownLatch;
    }