package com.zcxk.core.utils;

/**
 * 分布式锁接口类
 */
/**
 * @author Andy
 * @date 2021-07-22 11:03
 */
public interface DistributedLock {

    /**
     * 加锁
     *
     * @param key 加锁唯一业务key
     * @param expire 拿到锁超时过期时间
     * @param retry 重试次数
     * @param sleepMillis 重试间隔时间
     * @return boolean
     * @author Richard
     **/
    boolean lock(String key, long expire, int retry, long sleepMillis);

    /**
     * 是否锁
     *
     * @param key 加锁唯一业务key
     * @return boolean
     * @author Richard
     **/
    boolean releaseLock(String key);
}
