注释类型 RedisLock
-
@Target(METHOD) @Documented @Retention(RUNTIME) @Repeatable(RedisLocks.class) public @interface RedisLock
单机分布式锁 基于AOP, 对于同个方法的注解,总会优先于事务注解开始,在事务提交后释放锁 如果外层已经开始事务,则无法使锁免于事务隔离的影响,使用方需要注意注意:
当注解组合使用时,必须注意多个业务间对加锁的顺序处理;为避免死锁,建议为每个加锁的方法注明尝试加锁的等待时间
waitTime()为正数,防止死锁事故。- 作者:
- ZSP
-
-
可选元素概要
可选元素 修饰符和类型 可选元素 说明 Class<? extends RuntimeException>exceptionClassStringexceptionMessagelongleaseTime自动释放锁的时间。intorder注解间排序顺序。Stringprefixkey前缀,用于区分key命名空间,拼接在key前面 prefix:keyTimeUnittimeUnitlongwaitTime尝试获取锁的等待时间 小于0时一直阻塞等待,大于等于零时当超过指定时间会进入获取锁失败流程。
-
-
-
元素详细资料
-
key
String key
键主体,粒度参考mysql innodb行锁。当粒度过大时影响并发。 如tenantId_orgId_业务主键。
-
-
-
prefix
String prefix
key前缀,用于区分key命名空间,拼接在key前面 prefix:key- 默认值:
- ""
-
-
-
waitTime
long waitTime
尝试获取锁的等待时间 小于0时一直阻塞等待,大于等于零时当超过指定时间会进入获取锁失败流程。 单位timeUnit()- 默认值:
- -1L
-
-
-
leaseTime
long leaseTime
自动释放锁的时间。 请合理预估业务需要时间,防止锁提前被释放。 -1表明线程在占有锁期间不会因为执行时间过长导致锁释放。 正数代表在指定时间后将自动释放锁。 单位timeUnit()- 默认值:
- -1L
-
-
-
timeUnit
TimeUnit timeUnit
- 默认值:
- java.util.concurrent.TimeUnit.MILLISECONDS
-
-
-
exceptionClass
Class<? extends RuntimeException> exceptionClass
- 默认值:
- java.lang.RuntimeException.class
-
-
-
exceptionMessage
String exceptionMessage
- 默认值:
- "\u670d\u52a1\u5668\u7e41\u5fd9\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5\uff01"
-
-