diff --git a/redis-support-lib/src/main/java/cn/axzo/foundation/redis/support/RedisLock.java b/redis-support-lib/src/main/java/cn/axzo/foundation/redis/support/RedisLock.java
index 38dd164..58d2fe1 100644
--- a/redis-support-lib/src/main/java/cn/axzo/foundation/redis/support/RedisLock.java
+++ b/redis-support-lib/src/main/java/cn/axzo/foundation/redis/support/RedisLock.java
@@ -200,6 +200,21 @@ public class RedisLock {
}
}
+ /**
+ * 尝试立即获取锁,并执行supplier.get()方法,返回结果。
+ * timeoutMills = 0, expireMillis = 参数传入
+ */
+ public T acquireImmediatelyRun(long expireMillis, Supplier supplier) {
+ if (!lock(0, expireMillis)) {
+ throw ResultCode.OPERATE_TOO_FREQUENTLY.toException();
+ }
+ try {
+ return supplier.get();
+ } finally {
+ close();
+ }
+ }
+
/**
* 加锁 应该以: lock(); try { doSomething(); } finally { close(); } 的方式调用
* 外部不建议直接使用该方法,建议使用{@link #tryAcquireRun(long, long, Supplier)}明确指定锁的等待和过期时间