fix: 2.3.2
1. 修复分布式锁释放锁问题
This commit is contained in:
parent
41507d3e21
commit
6db370986a
@ -35,7 +35,7 @@ public abstract class AbstractLockProvider implements LockProvider {
|
|||||||
try {
|
try {
|
||||||
return doLockAfter(lockConfig);
|
return doLockAfter(lockConfig);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
if (tryToCreateLockRecord) {
|
if (!tryToCreateLockRecord) {
|
||||||
CacheLockRecord.remove(lockName);
|
CacheLockRecord.remove(lockName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,15 +45,20 @@ public abstract class AbstractSchedule implements Schedule {
|
|||||||
LockConfig lockConfig = new LockConfig(LocalDateTime.now(), lockName, Duration.parse(lockAtMost), Duration.parse(lockAtLeast));
|
LockConfig lockConfig = new LockConfig(LocalDateTime.now(), lockName, Duration.parse(lockAtMost), Duration.parse(lockAtLeast));
|
||||||
|
|
||||||
LockProvider lockProvider = getLockAccess();
|
LockProvider lockProvider = getLockAccess();
|
||||||
|
boolean lock = false;
|
||||||
try {
|
try {
|
||||||
if (lockProvider.lock(lockConfig)) {
|
lock = lockProvider.lock(lockConfig);
|
||||||
|
if (lock) {
|
||||||
doExecute();
|
doExecute();
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LogUtils.error(log, this.getClass().getName() + " execute error. lockName:[{}]", lockName, e);
|
LogUtils.error(log, this.getClass().getName() + " execute error. lockName:[{}]", lockName, e);
|
||||||
} finally {
|
} finally {
|
||||||
|
if (lock) {
|
||||||
lockProvider.unlock(lockConfig);
|
lockProvider.unlock(lockConfig);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user