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