分布式锁支持
说明
默认提供三种实现:无锁,数据库锁,redis锁,可自主选择,也可配置默认,可指定锁超时时间等 提供带返回参数调用及无返回调用
引入
引入最新版本(1.0.3/更新于2020/08/19)
<dependency>
<groupId>org.walkframework.boot</groupId>
<artifactId>walk-tools-lock</artifactId>
<version>1.0.3</version>
</dependency>
使用
配置默认锁模式
walk:
lock:
default-lock-type: none/redis/db # 选择默认使用哪种锁
redis:
timeout: 超时时间,单位毫秒
db:
profile: 使用哪个数据源作为数据库锁的数据源
timeout: 超时时间,单位秒(待优化)
编码
使用org.walkframework.boot.tools.lock.service.factory.LockFactory
相关api进行锁内编码
boolean action是否执行 = LockFactory.doInLock(String lockKey, LockAction 无返回结果Action实现);
ResponseInfo 执行结果 = LockFactory.doInLock(String lockKey, LockActionWithResult<T> 带返回结果Action实现);
ResponseInfo 执行结果 = LockFactory.doInLock(String lockKey, LockActionWithResult<T> 带返回结果Action实现, String 指定锁类型, int 指定锁时间);
// 更多api见LockFactory api