0
点赞
收藏
分享

微信扫一扫

redisson分布式锁 小demo

90哦吼 2022-03-12 阅读 69

redisson 分布式锁小demo

//redisson 分布式锁
String lockKey = TRANSFERKEY + request.getAppId() + ":" + request.getSourceMobile();
log.info("锁的key:{}", lockKey);
RLock lock = redissonClient.getLock(lockKey);
if (!Thread.currentThread().isInterrupted()) {
    try {
        lock.lock(10, TimeUnit.SECONDS);
        log.info("已拿到锁");
        //业务逻辑
        flag = smsUserAccountService.transferAccounts(request);
    } finally {
        if (lock.isLocked()) {
            if (lock.isHeldByCurrentThread()) {
                lock.unlock(); //两个判断条件是非常必要的
                log.info("成功释放锁");
            }
        }
    }
} else {
    log.warn(Thread.currentThread().getName() + " does not get lock.");
}
举报

相关推荐

0 条评论