雷迪森锁定:我已经应用了分布式锁定,我不确定如果Redis在AWS中发生故障会发生什么情况,那么锁定永远不会被释放,或者是否有机制可以做到这一点?
代码段:
@Override
@Async
public Future<BaseResponse> someMethodAsync(){
Lock lock = redissonClient.getFairLock(getLockName());
if(lock.tryLock()){
//Do something
return new AsyncResult<>(resp);
}finally{
lock.unlock();
}
}
答案 0 :(得分:1)
<强> LockWatchdogTimeout 强>
默认值: 30000
锁定看门狗超时(以毫秒为单位)。仅在没有leaseTimeout参数定义的情况下获取锁定时才使用此参数。如果看门狗未将其延长到下一个lockWatchdogTimeout时间间隔,则锁定将在lockWatchdogTimeout后过期。这可以防止由于Radisson客户端崩溃或无法以正确方式释放锁定的任何其他原因而导致的无限锁定锁定。
请在此处阅读 - https://github.com/redisson/redisson/wiki/2.-Configuration