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

com.wf2311.redis.distributed.lock.common.LockAction Maven / Gradle / Ivy

package com.wf2311.redis.distributed.lock.common;

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

/**
 * @author wf2311
 * @date 2018/5/12 15:39.
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface LockAction {


    /**
     * 锁的资源前缀
     */
    String prefix() default "";

    /**
     * 锁的资源
     */
    String field() default "";

    /**
     * 过期时间
     */
    long expireTime() default DistributedLock.DEFAULT_TIMEOUT;

    /**
     * 过期时间单位
     */
    TimeUnit expireTimeUnit() default TimeUnit.MILLISECONDS;

    /**
     * 获取失败尝试次数
     */
    int retryTimes() default DistributedLock.DEFAULT_RETRY_TIMES;

    /**
     * 休眠时间
     */
    long sleepTime() default DistributedLock.DEFAULT_SLEEP_TIME;

    /**
     * 休眠时间单位
     */
    TimeUnit sleepTimeUnit() default TimeUnit.MILLISECONDS;

    /**
     * 当获取失败时候动作
     */
    LockFailAction action() default LockFailAction.CONTINUE;

    public enum LockFailAction {
        /**
         * 放弃
         */
        GIVEUP,
        /**
         * 结束
         */
        CONTINUE
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy