package com.tzy.common.annotation;

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

/**
 * redis 分布式锁注解
 *
 * @author
 */
@Target({ ElementType.PARAMETER, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RedisLock {
     /**锁的key,支持SpEL表达式*/
     String lockKey();
     /**时间单位*/
     TimeUnit unit() default TimeUnit.SECONDS;
     /**锁等待时间*/
     long waitTime() ;
     /**锁持续时间,-1:自动续锁*/
     long leaseTime();
     /**是否使用事务*/
     boolean isUseTran() default false;
     /**失败提示信息*/
     String failMsg() default "请求失败,请重试!";
}