欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

如何正确运用Redisson锁的tryLock功能

最编程 2024-07-28 19:27:50
...
方式一
RLock lock = redissonClient.getLock("Export:create:" + Context.get().getCorpId());
try {
if (lock.tryLock(5, 10, TimeUnit.SECONDS)) {
//业务处理
} else {
Assert.isTrue(false, "排队中,请稍后重试!");
}
} catch (InterruptedException e) {
Assert.isTrue(false, "请勿重复操作!");
} finally {
if (lock.isLocked()) {
lock.unlock();
}
}
方式二:
RLock lock = redisson.getLock(String.format(REWARD_CARD_LOCK_KEY, 2)); try { //尝试加锁,最多等待10秒,上锁以后10秒自动解锁 if (lock.tryLock(10,10, TimeUnit.SECONDS)) { try { //处理 logger.info("tryLock thread---{}, lock:{}", Thread.currentThread().getId(), lock); } catch (Exception e) { } finally { //解锁 lock.unlock(); } } } catch (InterruptedException e) { //处理 //保留中断发生的证据,以便调用栈中更高层的代码能知道中断,并对中断作出响应 Thread.currentThread().interrupt(); }

原文地址:https://www.cnblogs.com/zxy-come-on/p/14377300.html