Redisson分布式锁的使用方式

    /**
     * 使用Redisson分布式锁-示例
     */
    public void useRedissonExample() {
        String lockName = "YourSystemName:BizName:LOCK";

        //使用分布式锁控制并发
        RLock lock = redissonClient.getLock(lockName);
        if (lock==null || lock.isLocked()) {
            logger.warn("--其他服务器已获取锁[{}]--", lockName);
            return;
        }

        try{
            //尝试获取锁等待1秒钟,获取后锁住10分钟, 这里根据业务场景设置锁的持有时间
            boolean getLock = lock.tryLock(1, 10*60L, TimeUnit.SECONDS);
            //获取不到锁直接返回
            if (Booleans.isFalse(getLock)){
                logger.warn("--没有获取锁[{}]--", lockName);
                return;
            }

            logger.info("--已获取锁[{}]--", lockName);

            //---业务代码从这里开始...

        }catch (Exception e){
            logger.error("发生异常:{}", e.getMessage(), e);
        }finally {
            lock.forceUnlock();
            logger.info("--已释放锁[{}]--", lockName);
        }

    }

 

转载于:https://my.oschina.net/placeholder/blog/1797374

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值