package com.izouma.nineth.lock;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @author mashaohua
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface RedisLockable {

    String prefix() default "";

    String[] key() default "";

    long expiration() default 60;

    boolean isWaiting() default false; //锁是否等待，默认为不等待

    int retryCount() default -1; // 锁等待重试次数，-1未不限制

    int retryWaitingTime() default 10; // 锁等待重试间隔时间，默认10毫秒
}
