redisson 分布式锁小demo
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.");
}