feat: 增加redisLock方法
原因
增加redisLock方法
修改
增加redisLock方法
This commit is contained in:
parent
6047e8933e
commit
de18b4af3f
@ -200,6 +200,21 @@ public class RedisLock {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 尝试立即获取锁,并执行supplier.get()方法,返回结果。<br>
|
||||
* timeoutMills = 0, expireMillis = 参数传入
|
||||
*/
|
||||
public <T> T acquireImmediatelyRun(long expireMillis, Supplier<T> supplier) {
|
||||
if (!lock(0, expireMillis)) {
|
||||
throw ResultCode.OPERATE_TOO_FREQUENTLY.toException();
|
||||
}
|
||||
try {
|
||||
return supplier.get();
|
||||
} finally {
|
||||
close();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 加锁 应该以: lock(); try { doSomething(); } finally { close(); } 的方式调用<br>
|
||||
* 外部不建议直接使用该方法,建议使用{@link #tryAcquireRun(long, long, Supplier)}明确指定锁的等待和过期时间
|
||||
|
||||
Loading…
Reference in New Issue
Block a user