feat: 增加redisLock方法

原因
    增加redisLock方法

修改
    增加redisLock方法
This commit is contained in:
zengxiaobo 2024-08-27 11:24:42 +08:00
parent 6047e8933e
commit de18b4af3f

View File

@ -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)}明确指定锁的等待和过期时间