Radisson锁:我已经应用了一个分布式锁,我不知道如果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();
}
}发布于 2018-04-23 10:15:04
LockWatchdogTimeout
默认值:30000
锁定看门狗超时(毫秒)。只有在没有leaseTimeout参数定义的情况下获得锁时才使用此参数。如果看门狗没有将其扩展到下一个lockWatchdogTimeout时间间隔,则锁将在lockWatchdogTimeout之后过期。这防止无限锁定锁,因为Radisson客户端挤压或任何其他原因时,锁不能以适当的方式释放。
在这里阅读- https://github.com/redisson/redisson/wiki/2.-Configuration
https://stackoverflow.com/questions/49976385
复制相似问题