diff --git a/hippo4j-common/src/main/java/cn/hippo4j/common/constant/Constants.java b/hippo4j-common/src/main/java/cn/hippo4j/common/constant/Constants.java index 83eb881b..1b482c4e 100644 --- a/hippo4j-common/src/main/java/cn/hippo4j/common/constant/Constants.java +++ b/hippo4j-common/src/main/java/cn/hippo4j/common/constant/Constants.java @@ -84,4 +84,6 @@ public class Constants { public static final String EXECUTE_TIMEOUT_TRACE = "executeTimeoutTrace"; + public static final int HTTP_EXECUTE_TIMEOUT = 5000; + } 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 de90120c..590373a7 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 @@ -2,15 +2,11 @@ package cn.hippo4j.console.controller; import cn.hippo4j.common.constant.Constants; import cn.hippo4j.common.model.InstanceInfo; -import cn.hippo4j.common.model.PoolBaseInfo; import cn.hippo4j.common.model.PoolParameterInfo; -import cn.hippo4j.common.model.PoolRunStateInfo; -import cn.hippo4j.common.model.ThreadDetailStateInfo; import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.common.web.base.Result; import cn.hippo4j.common.web.base.Results; -import cn.hippo4j.common.web.executor.WebThreadPoolService; import cn.hippo4j.config.model.CacheItem; import cn.hippo4j.config.model.biz.threadpool.ThreadPoolDelReqDTO; import cn.hippo4j.config.model.biz.threadpool.ThreadPoolQueryReqDTO; @@ -26,7 +22,6 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.text.StrBuilder; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpUtil; - import com.baomidou.mybatisplus.core.metadata.IPage; import com.google.common.collect.Lists; import lombok.AllArgsConstructor; @@ -35,9 +30,9 @@ import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; -import java.util.concurrent.Executor; import java.util.stream.Collectors; +import static cn.hippo4j.common.constant.Constants.HTTP_EXECUTE_TIMEOUT; import static cn.hippo4j.common.toolkit.ContentUtil.getGroupKey; /** @@ -67,7 +62,7 @@ public class ThreadPoolController { @PostMapping("/save_or_update") public Result saveOrUpdateThreadPoolConfig(@RequestParam(value = "identify", required = false) String identify, - @Validated @RequestBody ThreadPoolSaveOrUpdateReqDTO reqDTO) { + @Validated @RequestBody ThreadPoolSaveOrUpdateReqDTO reqDTO) { threadPoolService.saveOrUpdateThreadPoolConfig(identify, reqDTO); return Results.success(); } @@ -86,50 +81,50 @@ public class ThreadPoolController { @GetMapping("/run/state/{tpId}") public Result runState(@PathVariable("tpId") String tpId, - @RequestParam(value = "clientAddress", required = true) String clientAddress) { + @RequestParam(value = "clientAddress") String clientAddress) { String urlString = StrBuilder.create("http://", clientAddress, "/run/state/", tpId).toString(); - String data = HttpUtil.get(urlString); + String data = HttpUtil.get(urlString, HTTP_EXECUTE_TIMEOUT); Result result = JSONUtil.parseObject(data, Result.class); return result; } - + @GetMapping("/run/thread/state/{tpId}") public Result runThreadState(@PathVariable("tpId") String tpId, - @RequestParam(value = "clientAddress", required = true) String clientAddress) { + @RequestParam(value = "clientAddress") String clientAddress) { String urlString = StrBuilder.create("http://", clientAddress, "/run/thread/state/", tpId).toString(); - String data = HttpUtil.get(urlString); + String data = HttpUtil.get(urlString, HTTP_EXECUTE_TIMEOUT); Result result = JSONUtil.parseObject(data, Result.class); return result; } - + @GetMapping("/web/base/info") - public Result getPoolBaseState(@RequestParam(value = "clientAddress", required = true) String clientAddress) { + public Result getPoolBaseState(@RequestParam(value = "clientAddress") String clientAddress) { String urlString = StrBuilder.create("http://", clientAddress, "/web/base/info").toString(); - String data = HttpUtil.get(urlString); + String data = HttpUtil.get(urlString, HTTP_EXECUTE_TIMEOUT); Result result = JSONUtil.parseObject(data, Result.class); return result; } @GetMapping("/web/run/state") - public Result getPoolRunState(@RequestParam(value = "clientAddress", required = true) String clientAddress) { + public Result getPoolRunState(@RequestParam(value = "clientAddress") String clientAddress) { String urlString = StrBuilder.create("http://", clientAddress, "/web/run/state").toString(); - String data = HttpUtil.get(urlString); + String data = HttpUtil.get(urlString, HTTP_EXECUTE_TIMEOUT); Result result = JSONUtil.parseObject(data, Result.class); return result; } - + @PostMapping("/web/update/pool") - public Result updateWebThreadPool(@RequestParam(value = "clientAddress", required = true) String clientAddress, - @RequestBody PoolParameterInfo poolParameterInfo) { + public Result updateWebThreadPool(@RequestParam(value = "clientAddress") String clientAddress, + @RequestBody PoolParameterInfo poolParameterInfo) { String urlString = StrBuilder.create("http://", clientAddress, "/web/update/pool").toString(); - String data = HttpUtil.post(urlString, JSONUtil.toJSONString(poolParameterInfo)); + String data = HttpUtil.post(urlString, JSONUtil.toJSONString(poolParameterInfo), HTTP_EXECUTE_TIMEOUT); Result result = JSONUtil.parseObject(data, Result.class); return result; } @GetMapping("/list/instance/{itemId}/{tpId}") public Result> listInstance(@PathVariable("itemId") String itemId, - @PathVariable("tpId") String tpId) { + @PathVariable("tpId") String tpId) { List> leases = baseInstanceRegistry.listInstance(itemId); Lease first = CollUtil.getFirst(leases); if (first == null) { @@ -141,8 +136,8 @@ public class ThreadPoolController { String groupKey = getGroupKey(tpId, itemTenantKey); Map content = ConfigCacheService.getContent(groupKey); Map activeMap = - leases.stream().map(each -> each.getHolder()).filter(each -> StringUtil.isNotBlank(each.getActive())) - .collect(Collectors.toMap(InstanceInfo::getIdentify, InstanceInfo::getActive)); + leases.stream().map(each -> each.getHolder()).filter(each -> StringUtil.isNotBlank(each.getActive())) + .collect(Collectors.toMap(InstanceInfo::getIdentify, InstanceInfo::getActive)); Map clientBasePathMap = leases.stream().map(each -> each.getHolder()) .filter(each -> StringUtil.isNotBlank(each.getClientBasePath())) @@ -151,7 +146,7 @@ public class ThreadPoolController { List returnThreadPool = Lists.newArrayList(); content.forEach((key, val) -> { ThreadPoolInstanceInfo threadPoolInstanceInfo = - BeanUtil.convert(val.configAllInfo, ThreadPoolInstanceInfo.class); + BeanUtil.convert(val.configAllInfo, ThreadPoolInstanceInfo.class); threadPoolInstanceInfo.setClientAddress(StrUtil.subBefore(key, Constants.IDENTIFY_SLICER_SYMBOL, false)); threadPoolInstanceInfo.setActive(activeMap.get(key)); threadPoolInstanceInfo.setIdentify(key);