Skip to content

Repository files navigation

dlock

Maven CentralLicenseGitHub release

dlock-logo

dlock 是一个使用redis实现的分布式锁组件,具备可重入性以及自动续约能力。

环境依赖

dlock 环境依赖如下:

dlockJavaSpring Boot
1.x17+3.x

快速开始

Maven Dependency

<dependency>
<groupId>com.lazycece.dlock</groupId>
<artifactId>dlock-spring-boot-starter</artifactId>
<version>${dlock.version}</version>
</dependency>

Coding

publicclassSampleExample {
privatefinalstaticLoggerlog = LoggerFactory.getLogger(SampleExample.class);
publicstaticvoidmain(String[] args) {
// exampleStringlockKey = "lock_key";
DLocklock = DLockFactory.getInstance().produce(lockKey);
if (lock.tryLock(10, TimeUnit.SECONDS)) {
try {
// do something
} finally {
try {
lock.unlock();
} catch (Exceptione) {
log.error("unlock error, lockKey = {}", lockKey, e);
}
}
} else {
thrownewDLockTimeoutException("try lock timeout!");
}
// exampleDLockUtils.tryLock(lockKey, 10, TimeUnit.SECONDS, () -> {
// do something
});
}
}

更多样例详情可查看 dlock-samples

自定义配置

配置默认值描述
dlock.default-wait-millis-time50尝试获取锁的默认等待时长
dlock.try-sleep-millis100尝试获取锁过程中的线程休眠时长
dlock.enable-renewaltrue是否开启锁自动续约能力
dlock.renewal-threshold3000如果开启锁自动续约能力,那么锁的租约时间需要达到给定的阙值

License

Apache-2.0

About

dlock 是一个使用redis实现的分布式锁组件,具备可重入性以及自动续约能力。

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages