redisson锁 tryLock的使用及正确用法

时间:2025-03-20 13:57:16
方式一
RLock lock = ("Export:create:" + ().getCorpId());
try {
    if ((5, 10, )) {
        //业务处理
    } else {
        (false, "排队中,请稍后重试!");
    }
} catch (InterruptedException e) {
    (false, "请勿重复操作!");
} finally {
    if (()) {
        ();
    }
}

方式二:
RLock lock = ((REWARD_CARD_LOCK_KEY, 2));

try {

//尝试加锁,最多等待10秒,上锁以后10秒自动解锁

if ((10,10, )) {

try {

//处理

("tryLock thread---{}, lock:{}", ().getId(), lock);

} catch (Exception e) {

} finally {

//解锁

();

}

}

} catch (InterruptedException e) {

//处理

//保留中断发生的证据,以便调用栈中更高层的代码能知道中断,并对中断作出响应 ().interrupt();

}

public void testReentrantLock(RedissonClient redisson){
RLock lock = ("anyLock");
try{
// 1. 最常见的使用方法
//();
// 2. 支持过期解锁功能,10秒钟以后自动解锁, 无需调用unlock方法手动解锁
//(10, );
// 3. 尝试加锁,最多等待3秒,上锁以后10秒自动解锁
boolean res = (3, 10, );
if(res){ //成功
// do your business
}
} catch (InterruptedException e) {
();
} finally {
();
}
}