From 65d1c98dae18a87b8ad21982a1ef62d8f9c01551 Mon Sep 17 00:00:00 2001 From: hanshuai03 <14693422+hanshuai03@user.noreply.gitee.com> Date: Tue, 27 Jan 2026 14:22:34 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=89=B9=E9=87=8F=E9=94=81=E8=BF=87?= =?UTF-8?q?=E6=9C=9F=E6=B8=85=E7=90=86=E9=80=BB=E8=BE=91=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extension/jpa/JpaLockExtensionImpl.java | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/caf-lock/caf-lock-extension-jpa/src/main/java/io/iec/edp/caf/lock/extension/jpa/JpaLockExtensionImpl.java b/caf-lock/caf-lock-extension-jpa/src/main/java/io/iec/edp/caf/lock/extension/jpa/JpaLockExtensionImpl.java index 4f5de8f99..d99b08c14 100644 --- a/caf-lock/caf-lock-extension-jpa/src/main/java/io/iec/edp/caf/lock/extension/jpa/JpaLockExtensionImpl.java +++ b/caf-lock/caf-lock-extension-jpa/src/main/java/io/iec/edp/caf/lock/extension/jpa/JpaLockExtensionImpl.java @@ -218,12 +218,12 @@ public class JpaLockExtensionImpl implements LockExtension { } else { log.info("开关打开,并保存配置到缓存执行清理"); cache.put("enableCleanup", true); - this.batchRepo.deleteByExpiredTimeAndData(mkId, dataCat, dataIds, OffsetDateTime.now()); + deleteByExpiredTime(mkId, dataCat, dataIds, OffsetDateTime.now()); } } else if (cleanupBatchLock) { // 清理过期锁 log.info("根据缓存执行过期锁数据清理"); - this.batchRepo.deleteByExpiredTimeAndData(mkId, dataCat, dataIds, OffsetDateTime.now()); + deleteByExpiredTime(mkId, dataCat, dataIds, OffsetDateTime.now()); } //查询已有的锁数据 @@ -483,6 +483,22 @@ public class JpaLockExtensionImpl implements LockExtension { } return entities; } + private void deleteByExpiredTime(String mkId, String dataCat, List dataIds, OffsetDateTime expiredTime) { + int size = dataIds.size();//获取dataIds的长度 + int num = size / 999 + 1;//每次查询不超过999条 + if (num == 1) { + this.batchRepo.deleteByExpiredTimeAndData(mkId, dataCat, dataIds, OffsetDateTime.now()); + } else { + for (int i = 0; i < num; i++) { + int start = i * 999; + int end = (i + 1) * 999; + if (end >= size) { + end = size; + } + this.batchRepo.deleteByExpiredTimeAndData(mkId, dataCat, dataIds.subList(start, end), OffsetDateTime.now()); + } + } + } private int deleteBatchLockBySession(List entities) { Map> map = (Map)entities.stream().collect(Collectors.groupingBy(BatchLockEntity::getSessionId)); int count = 0; -- Gitee From 026972a607264c9c8d7a47a982cf2f401e5f2e2c Mon Sep 17 00:00:00 2001 From: hanshuai03 <14693422+hanshuai03@user.noreply.gitee.com> Date: Mon, 16 Mar 2026 17:10:14 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=89=B9=E9=87=8F=E9=94=81=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=E6=89=B9=E6=AC=A1=E5=90=91=E4=B8=8A=E5=8F=96=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../edp/caf/lock/extension/jpa/JpaLockExtensionImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/caf-lock/caf-lock-extension-jpa/src/main/java/io/iec/edp/caf/lock/extension/jpa/JpaLockExtensionImpl.java b/caf-lock/caf-lock-extension-jpa/src/main/java/io/iec/edp/caf/lock/extension/jpa/JpaLockExtensionImpl.java index d99b08c14..1fc1cf8c5 100644 --- a/caf-lock/caf-lock-extension-jpa/src/main/java/io/iec/edp/caf/lock/extension/jpa/JpaLockExtensionImpl.java +++ b/caf-lock/caf-lock-extension-jpa/src/main/java/io/iec/edp/caf/lock/extension/jpa/JpaLockExtensionImpl.java @@ -485,7 +485,7 @@ public class JpaLockExtensionImpl implements LockExtension { } private void deleteByExpiredTime(String mkId, String dataCat, List dataIds, OffsetDateTime expiredTime) { int size = dataIds.size();//获取dataIds的长度 - int num = size / 999 + 1;//每次查询不超过999条 + int num = (size + 998) / 999; //每次查询不超过999条,向上取整 if (num == 1) { this.batchRepo.deleteByExpiredTimeAndData(mkId, dataCat, dataIds, OffsetDateTime.now()); } else { @@ -514,7 +514,7 @@ public class JpaLockExtensionImpl implements LockExtension { //使用in时各数据库对in参数个数有限制,例如oracle是1000,分批次进行删除,每次删不超过999条 // this.batchRepo.deleteAllByIdIn(ids); int size=ids.size(); - int num=size/999+1; + int num = (size + 998) / 999; // 向上取整,避免多出一批 if(num==1){ this.batchRepo.deleteAllByIdIn(ids); }else{ @@ -537,7 +537,7 @@ public class JpaLockExtensionImpl implements LockExtension { List entities = new ArrayList<>(); if (dataIds != null) { int size = dataIds.size();//获取dataIds的长度 - int num = size / 999 + 1;//每次查询不超过999条 + int num = (size + 998) / 999; //每次查询不超过999条,向上取整 if (num == 1 || dataIds == null) { return this.batchRepo.findAllByMkIdAndCategoryIdAndDataIdInAndNotExpired(mkId, dataCat, dataIds, OffsetDateTime.now()); } else { -- Gitee