All Downloads are FREE. Search and download functionalities are using the official Maven repository.

top.isopen.commons.springboot.lock.annotation.RedLock Maven / Gradle / Ivy

There is a newer version: 1.2.8
Show newest version
package top.isopen.commons.springboot.lock.annotation;

import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

/**
 * 分布式锁注解
 * 

* 可重入、可 Watch Dog,底层依赖 {@link org.redisson.Redisson} * * @author TimeChaser * @version 1.0 * @since 2023/6/28 16:11 */ @Target({ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface RedLock { /** * 是否公平锁 */ boolean isFair() default false; /** * 锁的 key *

* key 中只能存在一个 spEl 表达式 *

* 类似于: *

* #user.userId *

* #user.userId:password *

* user:#user.userId:password */ String key(); /** * 加锁的时间(单位 {@link RedLock#timeUnit()}),超过这个时间后锁便自动解锁; *

* 如果 leaseTime 为 -1,则启用 Watch Dog 机制,先加锁 30 秒,线程存货则续期 */ long leaseTime() default -1L; /** * 参数的时间单位 */ TimeUnit timeUnit() default TimeUnit.MILLISECONDS; /** * 获取锁的最大尝试时间(单位 {@link RedLock#timeUnit()}) *

* 该值大于 0 则使用 locker.tryLock 方法加锁,否则使用 locker.lock 方法 */ long waitTime() default 500L; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy