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

com.spring.boxes.redis.lock.LockTemplate Maven / Gradle / Ivy

The newest version!
package com.spring.boxes.redis.lock;

public interface LockTemplate {


    /**
     * 获取锁(默认锁许可执行时长30秒, 1小时后自动释放锁)
     *
     * @param lockKey 分布式锁的Key
     * @return 获取锁结果
     */
    boolean tryLock(String lockKey);

    /**
     * 获取锁(默认1小时后自动释放锁)
     *
     * @param lockKey 分布式锁的Key
     * @param waitTime 锁许可执行时长, 单位: 毫秒
     * @return 获取锁结果
     */
    boolean tryLock(String lockKey, long waitTime);

    /**
     * 获取锁
     *
     * @param lockKey 分布式锁的Key
     * @param waitTime 锁许可执行时长, 单位: 毫秒
     * @param leaseTime 上锁间隔多久后释放锁
     * @return 获取锁结果
     */
    boolean tryLock(String lockKey, long waitTime, long leaseTime);

    /**
     * 获取锁并执行(默认锁许可执行时长30秒, 1小时后自动释放锁)
     *
     * @param lockKey 分布式锁的Key
     * @return 获取锁结果
     */
     LockResult execute(String lockKey, LockAction lockAction);

    /**
     * 获取锁(默认1小时后自动释放锁)
     *
     * @param lockKey 分布式锁的Key
     * @param waitTime 锁许可执行时长, 单位: 毫秒
     * @return 获取锁结果
     */
     LockResult execute(String lockKey, long waitTime, LockAction lockAction);

    /**
     * 获取锁并执行
     *
     * @param lockKey 分布式锁的Key
     * @param waitTime 锁许可执行时长, 单位: 毫秒
     * @param leaseTime 上锁间隔多久后释放锁
     * @return 获取锁结果
     */
     LockResult execute(String lockKey, long waitTime, long leaseTime, LockAction lockAction);

    /**
     * 释放锁
     *
     * @param lockKey 分布式锁的Key
     */
    void unlock(String lockKey);

    /**
     * 判断当前进程是否获取到缩
     *
     * @param lockKey 分布式锁的Key
     * @return 当前进程是否上锁
     */
    boolean isLocked(String lockKey);

    /**
     * 判断该线程是否持有当前锁
     *
     * @param lockKey 锁名称
     */
    boolean isHeldByCurrentThread(String lockKey);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy