From 568fc56fd8037545f0c2ad9afdcf053501ad3e70 Mon Sep 17 00:00:00 2001 From: "chen.ma" Date: Thu, 11 Aug 2022 08:37:28 +0800 Subject: [PATCH] Add condition to update if notification exists --- .../model/register/DynamicThreadPoolRegisterWrapper.java | 7 ++++++- .../java/cn/hippo4j/config/service/biz/NotifyService.java | 3 ++- .../hippo4j/config/service/biz/impl/ConfigServiceImpl.java | 7 ++----- .../hippo4j/config/service/biz/impl/NotifyServiceImpl.java | 5 ++++- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/hippo4j-common/src/main/java/cn/hippo4j/common/model/register/DynamicThreadPoolRegisterWrapper.java b/hippo4j-common/src/main/java/cn/hippo4j/common/model/register/DynamicThreadPoolRegisterWrapper.java index 1df939c0..a543223e 100644 --- a/hippo4j-common/src/main/java/cn/hippo4j/common/model/register/DynamicThreadPoolRegisterWrapper.java +++ b/hippo4j-common/src/main/java/cn/hippo4j/common/model/register/DynamicThreadPoolRegisterWrapper.java @@ -55,7 +55,12 @@ public class DynamicThreadPoolRegisterWrapper { /** * Update if exists */ - private Boolean updateIfExists = Boolean.TRUE; + private Boolean updateIfExists = Boolean.FALSE; + + /** + * Notify update if exists + */ + private Boolean notifyUpdateIfExists = Boolean.FALSE; /** * Dynamic thread-pool server notify parameter diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/NotifyService.java b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/NotifyService.java index a0bfc412..fbad36ef 100644 --- a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/NotifyService.java +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/NotifyService.java @@ -63,9 +63,10 @@ public interface NotifyService { /** * Save or update. * + * @param notifyUpdateIfExists * @param reqDTO */ - void saveOrUpdate(NotifyReqDTO reqDTO); + void saveOrUpdate(boolean notifyUpdateIfExists, NotifyReqDTO reqDTO); /** * Delete. diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ConfigServiceImpl.java b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ConfigServiceImpl.java index 04034503..ffab5101 100644 --- a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ConfigServiceImpl.java +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ConfigServiceImpl.java @@ -27,10 +27,7 @@ import cn.hippo4j.common.web.exception.ServiceException; import cn.hippo4j.config.event.LocalDataChangeEvent; import cn.hippo4j.config.mapper.ConfigInfoMapper; import cn.hippo4j.config.mapper.ConfigInstanceMapper; -import cn.hippo4j.config.model.ConfigAllInfo; -import cn.hippo4j.config.model.ConfigInfoBase; -import cn.hippo4j.config.model.ConfigInstanceInfo; -import cn.hippo4j.config.model.LogRecordInfo; +import cn.hippo4j.config.model.*; import cn.hippo4j.config.model.biz.notify.NotifyReqDTO; import cn.hippo4j.config.service.ConfigCacheService; import cn.hippo4j.config.service.ConfigChangePublisher; @@ -172,7 +169,7 @@ public class ConfigServiceImpl implements ConfigService { } else { notifyReqDTO.setConfigType(true); } - notifyService.saveOrUpdate(notifyReqDTO); + notifyService.saveOrUpdate(registerWrapper.getNotifyUpdateIfExists(), notifyReqDTO); }); } } diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/NotifyServiceImpl.java b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/NotifyServiceImpl.java index 35c886ee..0a597c5d 100644 --- a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/NotifyServiceImpl.java +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/NotifyServiceImpl.java @@ -120,11 +120,14 @@ public class NotifyServiceImpl implements NotifyService { } @Override - public void saveOrUpdate(NotifyReqDTO reqDTO) { + public void saveOrUpdate(boolean notifyUpdateIfExists, NotifyReqDTO reqDTO) { try { existNotify(reqDTO.getType(), reqDTO); save(reqDTO); } catch (Exception ignored) { + if (!notifyUpdateIfExists) { + return; + } LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(NotifyInfo.class) .eq(NotifyInfo::getTenantId, reqDTO.getTenantId()) .eq(NotifyInfo::getItemId, reqDTO.getItemId())