我需要为每个任务的执行创建锁,但是不同的任务可以有不同的锁超时。我在Redis中使用Spring分布式锁,这里有我的示例代码片段:
@Override
public boolean lock(String taskKey) {
if(taskKey == null || taskKey.isEmpty()){
throw new IllegalArgumentException("Key must be not null!");
}
Lock lock = lockRegistry.obtain(taskKey);
try{
if(!lock.tryLock()){
logger.warn("Unable to lock resource {}", taskKey);
return false;
}
logger.debug("Resource {} locked ", taskKey);
return true;
}catch(Exception exc){
throw exc;
}
}
我想要的是为每个taskKey设置不同的锁超时。我怎么能做到这一点呢?
1条答案
按热度按时间mwngjboj1#
正如您所看到的,方法tryLock可选地接受2个参数。