fix: 2.3.2

1. 修复分布式锁释放锁问题
This commit is contained in:
byteblogs168 2023-11-16 14:34:28 +08:00
parent 41507d3e21
commit 6db370986a
2 changed files with 8 additions and 3 deletions

View File

@ -35,7 +35,7 @@ public abstract class AbstractLockProvider implements LockProvider {
try {
return doLockAfter(lockConfig);
} catch (Exception e) {
if (tryToCreateLockRecord) {
if (!tryToCreateLockRecord) {
CacheLockRecord.remove(lockName);
}

View File

@ -45,16 +45,21 @@ public abstract class AbstractSchedule implements Schedule {
LockConfig lockConfig = new LockConfig(LocalDateTime.now(), lockName, Duration.parse(lockAtMost), Duration.parse(lockAtLeast));
LockProvider lockProvider = getLockAccess();
boolean lock = false;
try {
if (lockProvider.lock(lockConfig)) {
lock = lockProvider.lock(lockConfig);
if (lock) {
doExecute();
}
} catch (Exception e) {
LogUtils.error(log, this.getClass().getName() + " execute error. lockName:[{}]", lockName, e);
} finally {
lockProvider.unlock(lockConfig);
if (lock) {
lockProvider.unlock(lockConfig);
}
}
}
protected abstract void doExecute();