diff --git a/hippo4j-common/src/main/java/cn/hippo4j/common/model/ThreadPoolParameter.java b/hippo4j-common/src/main/java/cn/hippo4j/common/model/ThreadPoolParameter.java index be74b478..125ea912 100644 --- a/hippo4j-common/src/main/java/cn/hippo4j/common/model/ThreadPoolParameter.java +++ b/hippo4j-common/src/main/java/cn/hippo4j/common/model/ThreadPoolParameter.java @@ -57,6 +57,9 @@ public interface ThreadPoolParameter { */ Integer getMaxSize(); + Integer getCorePoolSize(); + + Integer getMaximumPoolSize(); /** * Get queue type * diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/config/CommonConfig.java b/hippo4j-config/src/main/java/cn/hippo4j/config/config/CommonConfig.java index b8ec6643..e191c465 100644 --- a/hippo4j-config/src/main/java/cn/hippo4j/config/config/CommonConfig.java +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/config/CommonConfig.java @@ -17,10 +17,12 @@ package cn.hippo4j.config.config; +import cn.hippo4j.adapter.web.WebThreadPoolHandlerChoose; import cn.hippo4j.common.config.ApplicationContextHolder; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Primary; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; @@ -30,6 +32,7 @@ import static cn.hippo4j.common.constant.Constants.AVAILABLE_PROCESSORS; * Common config. */ @Configuration +@Import(WebThreadPoolHandlerChoose.class) public class CommonConfig { @Bean @@ -50,4 +53,5 @@ public class CommonConfig { monitorThreadPool.setAwaitTerminationMillis(5000); return monitorThreadPool; } + } diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/model/biz/threadpool/ConfigModifySaveReqDTO.java b/hippo4j-config/src/main/java/cn/hippo4j/config/model/biz/threadpool/ConfigModifySaveReqDTO.java index 6d20cb8f..b2552bbd 100644 --- a/hippo4j-config/src/main/java/cn/hippo4j/config/model/biz/threadpool/ConfigModifySaveReqDTO.java +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/model/biz/threadpool/ConfigModifySaveReqDTO.java @@ -24,7 +24,7 @@ import lombok.Data; import javax.validation.constraints.Pattern; @Data -public class ConfigModifySaveReqDTO implements ThreadPoolParameter { +public class ConfigModifySaveReqDTO { /** * thread pool config change type @@ -60,14 +60,14 @@ public class ConfigModifySaveReqDTO implements ThreadPoolParameter { private String itemId; /** - * Core size + * Core pool size */ - private Integer coreSize; + private Integer corePoolSize; /** - * Max size + * Maximum pool size */ - private Integer maxSize; + private Integer maximumPoolSize; /** * Queue type diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/AbstractConfigModifyVerifyService.java b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/AbstractConfigModifyVerifyService.java index f35c1869..b0243c6c 100644 --- a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/AbstractConfigModifyVerifyService.java +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/AbstractConfigModifyVerifyService.java @@ -21,6 +21,7 @@ import cn.hippo4j.common.enums.EnableEnum; import cn.hippo4j.common.enums.VerifyEnum; import cn.hippo4j.common.model.ThreadPoolParameterInfo; import cn.hippo4j.common.toolkit.ContentUtil; +import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.UserContext; import cn.hippo4j.config.mapper.HisConfigVerifyMapper; import cn.hippo4j.config.model.HisConfigVerifyInfo; @@ -41,7 +42,7 @@ public abstract class AbstractConfigModifyVerifyService implements ConfigModifyV @Override public void saveConfigModifyApplication(ConfigModifySaveReqDTO reqDTO) { HisConfigVerifyInfo hisConfigVerifyInfo = BeanUtil.convert(reqDTO, HisConfigVerifyInfo.class); - hisConfigVerifyInfo.setContent(ContentUtil.getPoolContent(reqDTO)); + hisConfigVerifyInfo.setContent(JSONUtil.toJSONString(reqDTO)); hisConfigVerifyInfo.setVerifyStatus(VerifyEnum.TO_VERIFY.getVerifyStatus()); hisConfigVerifyInfo.setModifyAll(EnableEnum.NO.getIntCode()); diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ThreadPoolServiceImpl.java b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ThreadPoolServiceImpl.java index e811691d..dd391bf0 100644 --- a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ThreadPoolServiceImpl.java +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ThreadPoolServiceImpl.java @@ -91,6 +91,8 @@ public class ThreadPoolServiceImpl implements ThreadPoolService { configService.insertOrUpdate(identify, false, configAllInfo); } else { ConfigModifySaveReqDTO modifySaveReqDTO = BeanUtil.convert(reqDTO, ConfigModifySaveReqDTO.class); + modifySaveReqDTO.setCorePoolSize(reqDTO.getCoreSize()); + modifySaveReqDTO.setMaximumPoolSize(reqDTO.getMaxSize()); modifySaveReqDTO.setModifyUser(UserContext.getUserName()); modifySaveReqDTO.setType(ConfigModifyTypeConstants.THREAD_POOL_MANAGER); configModifyVerifyServiceChoose.choose(modifySaveReqDTO.getType()).saveConfigModifyApplication(modifySaveReqDTO); diff --git a/hippo4j-console/src/main/java/cn/hippo4j/console/controller/ThreadPoolController.java b/hippo4j-console/src/main/java/cn/hippo4j/console/controller/ThreadPoolController.java index 08153056..6012bdf1 100644 --- a/hippo4j-console/src/main/java/cn/hippo4j/console/controller/ThreadPoolController.java +++ b/hippo4j-console/src/main/java/cn/hippo4j/console/controller/ThreadPoolController.java @@ -17,21 +17,21 @@ package cn.hippo4j.console.controller; +import cn.hippo4j.common.constant.ConfigModifyTypeConstants; import cn.hippo4j.common.constant.Constants; import cn.hippo4j.common.model.InstanceInfo; import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.StringUtil; +import cn.hippo4j.common.toolkit.UserContext; import cn.hippo4j.common.web.base.Result; import cn.hippo4j.common.web.base.Results; import cn.hippo4j.common.web.exception.ErrorCodeEnum; import cn.hippo4j.config.model.CacheItem; -import cn.hippo4j.config.model.biz.threadpool.ThreadPoolDelReqDTO; -import cn.hippo4j.config.model.biz.threadpool.ThreadPoolQueryReqDTO; -import cn.hippo4j.config.model.biz.threadpool.ThreadPoolRespDTO; -import cn.hippo4j.config.model.biz.threadpool.ThreadPoolSaveOrUpdateReqDTO; +import cn.hippo4j.config.model.biz.threadpool.*; import cn.hippo4j.config.service.ConfigCacheService; import cn.hippo4j.config.service.biz.ThreadPoolService; import cn.hippo4j.config.toolkit.BeanUtil; +import cn.hippo4j.config.verify.ConfigModifyVerifyServiceChoose; import cn.hippo4j.console.model.ThreadPoolInstanceInfo; import cn.hippo4j.console.model.WebThreadPoolReqDTO; import cn.hippo4j.console.model.WebThreadPoolRespDTO; @@ -66,6 +66,8 @@ public class ThreadPoolController { private final BaseInstanceRegistry baseInstanceRegistry; + private final ConfigModifyVerifyServiceChoose configModifyVerifyServiceChoose; + @PostMapping("/query/page") public Result> queryNameSpacePage(@RequestBody ThreadPoolQueryReqDTO reqDTO) { return Results.success(threadPoolService.queryThreadPoolPage(reqDTO)); @@ -172,9 +174,16 @@ public class ThreadPoolController { @PostMapping("/web/update/pool") public Result updateWebThreadPool(@RequestBody WebThreadPoolReqDTO requestParam) { - for (String each : requestParam.getClientAddressList()) { - String urlString = StrBuilder.create("http://", each, "/web/update/pool").toString(); - HttpUtil.post(urlString, JSONUtil.toJSONString(requestParam), HTTP_EXECUTE_TIMEOUT); + if (UserContext.getUserRole().equals("ROLE_ADMIN")) { + for (String each : requestParam.getClientAddressList()) { + String urlString = StrBuilder.create("http://", each, "/web/update/pool").toString(); + HttpUtil.post(urlString, JSONUtil.toJSONString(requestParam), HTTP_EXECUTE_TIMEOUT); + } + }else { + ConfigModifySaveReqDTO modifySaveReqDTO = BeanUtil.convert(requestParam, ConfigModifySaveReqDTO.class); + modifySaveReqDTO.setModifyUser(UserContext.getUserName()); + modifySaveReqDTO.setType(ConfigModifyTypeConstants.WEB_THREAD_POOL); + configModifyVerifyServiceChoose.choose(modifySaveReqDTO.getType()).saveConfigModifyApplication(modifySaveReqDTO); } return Results.success(); } diff --git a/hippo4j-console/src/main/java/cn/hippo4j/console/model/WebThreadPoolReqDTO.java b/hippo4j-console/src/main/java/cn/hippo4j/console/model/WebThreadPoolReqDTO.java index 9576da15..9f98eabd 100644 --- a/hippo4j-console/src/main/java/cn/hippo4j/console/model/WebThreadPoolReqDTO.java +++ b/hippo4j-console/src/main/java/cn/hippo4j/console/model/WebThreadPoolReqDTO.java @@ -27,6 +27,21 @@ import java.util.List; @Data public class WebThreadPoolReqDTO { + /** + * Thread-pool id + */ + private String tenantId; + + /** + * Item id + */ + private String itemId; + + /** + * thread pool instance id + */ + private String instanceId; + /** * Core pool size */ @@ -42,6 +57,11 @@ public class WebThreadPoolReqDTO { */ private Integer keepAliveTime; + /** + * weather modify all instances + */ + private Integer modifyAll; + /** * Client address list */