Refactoring core entity class naming

pull/222/head
chen.ma 2 years ago
parent a0990d18da
commit 75ddc090ff

@ -26,7 +26,7 @@ import lombok.Data;
* @date 2022/1/8 12:54 * @date 2022/1/8 12:54
*/ */
@Data @Data
public class ManyPoolRunStateInfo extends PoolRunStateInfo { public class ManyThreadPoolRunStateInfo extends ThreadPoolRunStateInfo {
/** /**
* identify * identify

@ -21,14 +21,14 @@ import lombok.Data;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
/** /**
* Pool base info. * Thread-pool base info.
* *
* @author chen.ma * @author chen.ma
* @date 2022/1/22 12:10 * @date 2022/1/22 12:10
*/ */
@Data @Data
@Accessors(chain = true) @Accessors(chain = true)
public class PoolBaseInfo { public class ThreadPoolBaseInfo {
/** /**
* coreSize * coreSize

@ -18,12 +18,12 @@
package cn.hippo4j.common.model; package cn.hippo4j.common.model;
/** /**
* Pool parameter. * Thread-pool parameter.
* *
* @author chen.ma * @author chen.ma
* @date 2021/6/24 16:04 * @date 2021/6/24 16:04
*/ */
public interface PoolParameter { public interface ThreadPoolParameter {
/** /**
* tenantId * tenantId

@ -30,7 +30,7 @@ import java.io.Serializable;
*/ */
@Data @Data
@Accessors(chain = true) @Accessors(chain = true)
public class PoolParameterInfo implements PoolParameter, Serializable { public class ThreadPoolParameterInfo implements ThreadPoolParameter, Serializable {
private static final long serialVersionUID = -7123935122108553864L; private static final long serialVersionUID = -7123935122108553864L;

@ -30,7 +30,7 @@ import java.io.Serializable;
*/ */
@Getter @Getter
@Setter @Setter
public class PoolRunStateInfo extends PoolBaseInfo implements Serializable { public class ThreadPoolRunStateInfo extends ThreadPoolBaseInfo implements Serializable {
/** /**
* currentLoad * currentLoad

@ -18,8 +18,8 @@
package cn.hippo4j.common.toolkit; package cn.hippo4j.common.toolkit;
import cn.hippo4j.common.constant.Constants; import cn.hippo4j.common.constant.Constants;
import cn.hippo4j.common.model.PoolParameter; import cn.hippo4j.common.model.ThreadPoolParameter;
import cn.hippo4j.common.model.PoolParameterInfo; import cn.hippo4j.common.model.ThreadPoolParameterInfo;
/** /**
* Content util. * Content util.
@ -29,9 +29,9 @@ import cn.hippo4j.common.model.PoolParameterInfo;
*/ */
public class ContentUtil { public class ContentUtil {
public static String getPoolContent(PoolParameter parameter) { public static String getPoolContent(ThreadPoolParameter parameter) {
PoolParameterInfo poolInfo = new PoolParameterInfo(); ThreadPoolParameterInfo threadPoolParameterInfo = new ThreadPoolParameterInfo();
poolInfo.setTenantId(parameter.getTenantId()) threadPoolParameterInfo.setTenantId(parameter.getTenantId())
.setItemId(parameter.getItemId()) .setItemId(parameter.getItemId())
.setTpId(parameter.getTpId()) .setTpId(parameter.getTpId())
.setCoreSize(parameter.getCoreSize()) .setCoreSize(parameter.getCoreSize())
@ -44,10 +44,10 @@ public class ContentUtil {
.setLivenessAlarm(parameter.getLivenessAlarm()) .setLivenessAlarm(parameter.getLivenessAlarm())
.setAllowCoreThreadTimeOut(parameter.getAllowCoreThreadTimeOut()) .setAllowCoreThreadTimeOut(parameter.getAllowCoreThreadTimeOut())
.setRejectedType(parameter.getRejectedType()); .setRejectedType(parameter.getRejectedType());
return JSONUtil.toJSONString(poolInfo); return JSONUtil.toJSONString(threadPoolParameterInfo);
} }
public static String getGroupKey(PoolParameter parameter) { public static String getGroupKey(ThreadPoolParameter parameter) {
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
String resultStr = stringBuilder.append(parameter.getTpId()) String resultStr = stringBuilder.append(parameter.getTpId())
.append(Constants.GROUP_KEY_DELIMITER) .append(Constants.GROUP_KEY_DELIMITER)

@ -18,7 +18,7 @@
package cn.hippo4j.common.toolkit; package cn.hippo4j.common.toolkit;
import cn.hippo4j.common.constant.Constants; import cn.hippo4j.common.constant.Constants;
import cn.hippo4j.common.model.PoolParameter; import cn.hippo4j.common.model.ThreadPoolParameter;
import java.io.IOException; import java.io.IOException;
import java.net.URLEncoder; import java.net.URLEncoder;
@ -74,7 +74,7 @@ public class Md5Util {
return new String(out); return new String(out);
} }
public static String getTpContentMd5(PoolParameter config) { public static String getTpContentMd5(ThreadPoolParameter config) {
return Md5Util.md5Hex(ContentUtil.getPoolContent(config), "UTF-8"); return Md5Util.md5Hex(ContentUtil.getPoolContent(config), "UTF-8");
} }

@ -17,7 +17,7 @@
package cn.hippo4j.config.model; package cn.hippo4j.config.model;
import cn.hippo4j.common.model.PoolParameter; import cn.hippo4j.common.model.ThreadPoolParameter;
import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.JSONUtil;
import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
@ -36,7 +36,7 @@ import java.util.Date;
*/ */
@Data @Data
@TableName("config") @TableName("config")
public class ConfigAllInfo extends ConfigInfo implements PoolParameter { public class ConfigAllInfo extends ConfigInfo implements ThreadPoolParameter {
private static final long serialVersionUID = -2417394244017463665L; private static final long serialVersionUID = -2417394244017463665L;

@ -19,7 +19,7 @@ package cn.hippo4j.console.controller;
import cn.hippo4j.common.constant.Constants; import cn.hippo4j.common.constant.Constants;
import cn.hippo4j.common.model.InstanceInfo; import cn.hippo4j.common.model.InstanceInfo;
import cn.hippo4j.common.model.PoolParameterInfo; import cn.hippo4j.common.model.ThreadPoolParameterInfo;
import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.JSONUtil;
import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.common.toolkit.StringUtil;
import cn.hippo4j.common.web.base.Result; import cn.hippo4j.common.web.base.Result;
@ -132,9 +132,9 @@ public class ThreadPoolController {
@PostMapping("/web/update/pool") @PostMapping("/web/update/pool")
public Result<Void> updateWebThreadPool(@RequestParam(value = "clientAddress") String clientAddress, public Result<Void> updateWebThreadPool(@RequestParam(value = "clientAddress") String clientAddress,
@RequestBody PoolParameterInfo poolParameterInfo) { @RequestBody ThreadPoolParameterInfo threadPoolParameterInfo) {
String urlString = StrBuilder.create("http://", clientAddress, "/web/update/pool").toString(); String urlString = StrBuilder.create("http://", clientAddress, "/web/update/pool").toString();
String data = HttpUtil.post(urlString, JSONUtil.toJSONString(poolParameterInfo), HTTP_EXECUTE_TIMEOUT); String data = HttpUtil.post(urlString, JSONUtil.toJSONString(threadPoolParameterInfo), HTTP_EXECUTE_TIMEOUT);
Result result = JSONUtil.parseObject(data, Result.class); Result result = JSONUtil.parseObject(data, Result.class);
return result; return result;
} }

@ -17,7 +17,7 @@
package cn.hippo4j.core.executor.manage; package cn.hippo4j.core.executor.manage;
import cn.hippo4j.common.model.PoolParameter; import cn.hippo4j.common.model.ThreadPoolParameter;
import cn.hippo4j.core.executor.DynamicThreadPoolWrapper; import cn.hippo4j.core.executor.DynamicThreadPoolWrapper;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
@ -36,7 +36,7 @@ public class GlobalThreadPoolManage {
/** /**
* Dynamic thread pool parameter container. * Dynamic thread pool parameter container.
*/ */
private static final Map<String, PoolParameter> POOL_PARAMETER = new ConcurrentHashMap(); private static final Map<String, ThreadPoolParameter> POOL_PARAMETER = new ConcurrentHashMap();
/** /**
* Dynamic thread pool wrapper. * Dynamic thread pool wrapper.
@ -59,7 +59,7 @@ public class GlobalThreadPoolManage {
* @param threadPoolId * @param threadPoolId
* @return * @return
*/ */
public static PoolParameter getPoolParameter(String threadPoolId) { public static ThreadPoolParameter getPoolParameter(String threadPoolId) {
return POOL_PARAMETER.get(threadPoolId); return POOL_PARAMETER.get(threadPoolId);
} }
@ -67,12 +67,12 @@ public class GlobalThreadPoolManage {
* Register dynamic thread pool wrapper and parameters. * Register dynamic thread pool wrapper and parameters.
* *
* @param threadPoolId * @param threadPoolId
* @param poolParameter * @param threadPoolParameter
* @param executor * @param executor
*/ */
public static void register(String threadPoolId, PoolParameter poolParameter, DynamicThreadPoolWrapper executor) { public static void register(String threadPoolId, ThreadPoolParameter threadPoolParameter, DynamicThreadPoolWrapper executor) {
registerPool(threadPoolId, executor); registerPool(threadPoolId, executor);
registerPoolParameter(threadPoolId, poolParameter); registerPoolParameter(threadPoolId, threadPoolParameter);
} }
/** /**
@ -91,7 +91,7 @@ public class GlobalThreadPoolManage {
* @param threadPoolId * @param threadPoolId
* @param poolParameter * @param poolParameter
*/ */
public static void registerPoolParameter(String threadPoolId, PoolParameter poolParameter) { public static void registerPoolParameter(String threadPoolId, ThreadPoolParameter poolParameter) {
POOL_PARAMETER.put(threadPoolId, poolParameter); POOL_PARAMETER.put(threadPoolId, poolParameter);
} }

@ -17,7 +17,7 @@
package cn.hippo4j.core.executor.state; package cn.hippo4j.core.executor.state;
import cn.hippo4j.common.model.PoolRunStateInfo; import cn.hippo4j.common.model.ThreadPoolRunStateInfo;
import cn.hippo4j.core.executor.DynamicThreadPoolExecutor; import cn.hippo4j.core.executor.DynamicThreadPoolExecutor;
import cn.hippo4j.core.executor.DynamicThreadPoolWrapper; import cn.hippo4j.core.executor.DynamicThreadPoolWrapper;
import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage;
@ -40,10 +40,10 @@ public abstract class AbstractThreadPoolRuntime {
/** /**
* Supplement. * Supplement.
* *
* @param basePoolRunStateInfo * @param threadPoolRunStateInfo
* @return * @return
*/ */
protected abstract PoolRunStateInfo supplement(PoolRunStateInfo basePoolRunStateInfo); protected abstract ThreadPoolRunStateInfo supplement(ThreadPoolRunStateInfo threadPoolRunStateInfo);
/** /**
* Get pool run state. * Get pool run state.
@ -51,7 +51,7 @@ public abstract class AbstractThreadPoolRuntime {
* @param threadPoolId * @param threadPoolId
* @return * @return
*/ */
public PoolRunStateInfo getPoolRunState(String threadPoolId) { public ThreadPoolRunStateInfo getPoolRunState(String threadPoolId) {
DynamicThreadPoolWrapper executorService = GlobalThreadPoolManage.getExecutorService(threadPoolId); DynamicThreadPoolWrapper executorService = GlobalThreadPoolManage.getExecutorService(threadPoolId);
ThreadPoolExecutor pool = executorService.getExecutor(); ThreadPoolExecutor pool = executorService.getExecutor();
return getPoolRunState(threadPoolId, pool); return getPoolRunState(threadPoolId, pool);
@ -64,8 +64,8 @@ public abstract class AbstractThreadPoolRuntime {
* @param executor * @param executor
* @return * @return
*/ */
public PoolRunStateInfo getPoolRunState(String threadPoolId, Executor executor) { public ThreadPoolRunStateInfo getPoolRunState(String threadPoolId, Executor executor) {
PoolRunStateInfo stateInfo = new PoolRunStateInfo(); ThreadPoolRunStateInfo stateInfo = new ThreadPoolRunStateInfo();
ThreadPoolExecutor pool = (ThreadPoolExecutor) executor; ThreadPoolExecutor pool = (ThreadPoolExecutor) executor;
// 核心线程数 // 核心线程数
int corePoolSize = pool.getCorePoolSize(); int corePoolSize = pool.getCorePoolSize();

@ -17,8 +17,8 @@
package cn.hippo4j.core.executor.state; package cn.hippo4j.core.executor.state;
import cn.hippo4j.common.model.ManyPoolRunStateInfo; import cn.hippo4j.common.model.ManyThreadPoolRunStateInfo;
import cn.hippo4j.common.model.PoolRunStateInfo; import cn.hippo4j.common.model.ThreadPoolRunStateInfo;
import cn.hippo4j.common.toolkit.ByteConvertUtil; import cn.hippo4j.common.toolkit.ByteConvertUtil;
import cn.hippo4j.core.executor.DynamicThreadPoolExecutor; import cn.hippo4j.core.executor.DynamicThreadPoolExecutor;
import cn.hippo4j.core.executor.DynamicThreadPoolWrapper; import cn.hippo4j.core.executor.DynamicThreadPoolWrapper;
@ -51,8 +51,7 @@ public class ThreadPoolRunStateHandler extends AbstractThreadPoolRuntime {
private final ConfigurableEnvironment environment; private final ConfigurableEnvironment environment;
@Override @Override
protected PoolRunStateInfo supplement(PoolRunStateInfo poolRunStateInfo) { protected ThreadPoolRunStateInfo supplement(ThreadPoolRunStateInfo poolRunStateInfo) {
// 内存占比: 使用内存 / 最大内存
RuntimeInfo runtimeInfo = new RuntimeInfo(); RuntimeInfo runtimeInfo = new RuntimeInfo();
String memoryProportion = StrUtil.builder( String memoryProportion = StrUtil.builder(
"已分配: ", "已分配: ",
@ -75,12 +74,12 @@ public class ThreadPoolRunStateHandler extends AbstractThreadPoolRuntime {
rejectedName = pool.getRejectedExecutionHandler().getClass().getSimpleName(); rejectedName = pool.getRejectedExecutionHandler().getClass().getSimpleName();
} }
poolRunStateInfo.setRejectedName(rejectedName); poolRunStateInfo.setRejectedName(rejectedName);
ManyPoolRunStateInfo manyPoolRunStateInfo = BeanUtil.toBean(poolRunStateInfo, ManyPoolRunStateInfo.class); ManyThreadPoolRunStateInfo manyThreadPoolRunStateInfo = BeanUtil.toBean(poolRunStateInfo, ManyThreadPoolRunStateInfo.class);
manyPoolRunStateInfo.setIdentify(CLIENT_IDENTIFICATION_VALUE); manyThreadPoolRunStateInfo.setIdentify(CLIENT_IDENTIFICATION_VALUE);
String active = environment.getProperty("spring.profiles.active", "UNKNOWN"); String active = environment.getProperty("spring.profiles.active", "UNKNOWN");
manyPoolRunStateInfo.setActive(active.toUpperCase()); manyThreadPoolRunStateInfo.setActive(active.toUpperCase());
String threadPoolState = ThreadPoolStatusHandler.getThreadPoolState(pool); String threadPoolState = ThreadPoolStatusHandler.getThreadPoolState(pool);
manyPoolRunStateInfo.setState(threadPoolState); manyThreadPoolRunStateInfo.setState(threadPoolState);
return manyPoolRunStateInfo; return manyThreadPoolRunStateInfo;
} }
} }

@ -17,10 +17,10 @@
package cn.hippo4j.core.executor.web; package cn.hippo4j.core.executor.web;
import cn.hippo4j.common.model.PoolBaseInfo; import cn.hippo4j.common.model.ThreadPoolBaseInfo;
import cn.hippo4j.common.model.PoolParameter; import cn.hippo4j.common.model.ThreadPoolParameter;
import cn.hippo4j.common.model.PoolParameterInfo; import cn.hippo4j.common.model.ThreadPoolParameterInfo;
import cn.hippo4j.common.model.PoolRunStateInfo; import cn.hippo4j.common.model.ThreadPoolRunStateInfo;
import cn.hippo4j.common.toolkit.ReflectUtil; import cn.hippo4j.common.toolkit.ReflectUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.eclipse.jetty.util.thread.QueuedThreadPool; import org.eclipse.jetty.util.thread.QueuedThreadPool;
@ -47,8 +47,8 @@ public class JettyWebThreadPoolHandler extends AbstractWebThreadPoolService {
} }
@Override @Override
public PoolBaseInfo simpleInfo() { public ThreadPoolBaseInfo simpleInfo() {
PoolBaseInfo poolBaseInfo = new PoolBaseInfo(); ThreadPoolBaseInfo poolBaseInfo = new ThreadPoolBaseInfo();
QueuedThreadPool queuedThreadPool = (QueuedThreadPool) executor; QueuedThreadPool queuedThreadPool = (QueuedThreadPool) executor;
poolBaseInfo.setCoreSize(queuedThreadPool.getMinThreads()); poolBaseInfo.setCoreSize(queuedThreadPool.getMinThreads());
poolBaseInfo.setMaximumSize(queuedThreadPool.getMaxThreads()); poolBaseInfo.setMaximumSize(queuedThreadPool.getMaxThreads());
@ -62,10 +62,10 @@ public class JettyWebThreadPoolHandler extends AbstractWebThreadPoolService {
} }
@Override @Override
public PoolParameter getWebThreadPoolParameter() { public ThreadPoolParameter getWebThreadPoolParameter() {
PoolParameterInfo parameterInfo = null; ThreadPoolParameterInfo parameterInfo = null;
try { try {
parameterInfo = new PoolParameterInfo(); parameterInfo = new ThreadPoolParameterInfo();
QueuedThreadPool jettyExecutor = (QueuedThreadPool) executor; QueuedThreadPool jettyExecutor = (QueuedThreadPool) executor;
int minThreads = jettyExecutor.getMinThreads(); int minThreads = jettyExecutor.getMinThreads();
int maxThreads = jettyExecutor.getMaxThreads(); int maxThreads = jettyExecutor.getMaxThreads();
@ -78,18 +78,18 @@ public class JettyWebThreadPoolHandler extends AbstractWebThreadPoolService {
} }
@Override @Override
public PoolRunStateInfo getWebRunStateInfo() { public ThreadPoolRunStateInfo getWebRunStateInfo() {
return null; return null;
} }
@Override @Override
public void updateWebThreadPool(PoolParameterInfo poolParameterInfo) { public void updateWebThreadPool(ThreadPoolParameterInfo threadPoolParameterInfo) {
try { try {
QueuedThreadPool jettyExecutor = (QueuedThreadPool) executor; QueuedThreadPool jettyExecutor = (QueuedThreadPool) executor;
int minThreads = jettyExecutor.getMinThreads(); int minThreads = jettyExecutor.getMinThreads();
int maxThreads = jettyExecutor.getMaxThreads(); int maxThreads = jettyExecutor.getMaxThreads();
Integer coreSize = poolParameterInfo.getCoreSize(); Integer coreSize = threadPoolParameterInfo.getCoreSize();
Integer maxSize = poolParameterInfo.getMaxSize(); Integer maxSize = threadPoolParameterInfo.getMaxSize();
jettyExecutor.setMinThreads(coreSize); jettyExecutor.setMinThreads(coreSize);
jettyExecutor.setMaxThreads(maxSize); jettyExecutor.setMaxThreads(maxSize);
log.info( log.info(

@ -17,10 +17,10 @@
package cn.hippo4j.core.executor.web; package cn.hippo4j.core.executor.web;
import cn.hippo4j.common.model.PoolBaseInfo; import cn.hippo4j.common.model.ThreadPoolBaseInfo;
import cn.hippo4j.common.model.PoolParameter; import cn.hippo4j.common.model.ThreadPoolParameter;
import cn.hippo4j.common.model.PoolParameterInfo; import cn.hippo4j.common.model.ThreadPoolParameterInfo;
import cn.hippo4j.common.model.PoolRunStateInfo; import cn.hippo4j.common.model.ThreadPoolRunStateInfo;
import cn.hippo4j.core.executor.state.AbstractThreadPoolRuntime; import cn.hippo4j.core.executor.state.AbstractThreadPoolRuntime;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -66,8 +66,8 @@ public class TomcatWebThreadPoolHandler extends AbstractWebThreadPoolService {
} }
@Override @Override
public PoolBaseInfo simpleInfo() { public ThreadPoolBaseInfo simpleInfo() {
PoolBaseInfo poolBaseInfo = new PoolBaseInfo(); ThreadPoolBaseInfo poolBaseInfo = new ThreadPoolBaseInfo();
ThreadPoolExecutor threadPoolExecutor = (ThreadPoolExecutor) executor; ThreadPoolExecutor threadPoolExecutor = (ThreadPoolExecutor) executor;
int corePoolSize = threadPoolExecutor.getCorePoolSize(); int corePoolSize = threadPoolExecutor.getCorePoolSize();
int maximumPoolSize = threadPoolExecutor.getMaximumPoolSize(); int maximumPoolSize = threadPoolExecutor.getMaximumPoolSize();
@ -89,10 +89,10 @@ public class TomcatWebThreadPoolHandler extends AbstractWebThreadPoolService {
} }
@Override @Override
public PoolParameter getWebThreadPoolParameter() { public ThreadPoolParameter getWebThreadPoolParameter() {
PoolParameterInfo parameterInfo = null; ThreadPoolParameterInfo parameterInfo = null;
try { try {
parameterInfo = new PoolParameterInfo(); parameterInfo = new ThreadPoolParameterInfo();
ThreadPoolExecutor tomcatExecutor = (ThreadPoolExecutor) executor; ThreadPoolExecutor tomcatExecutor = (ThreadPoolExecutor) executor;
int minThreads = tomcatExecutor.getCorePoolSize(); int minThreads = tomcatExecutor.getCorePoolSize();
int maxThreads = tomcatExecutor.getMaximumPoolSize(); int maxThreads = tomcatExecutor.getMaximumPoolSize();
@ -108,28 +108,28 @@ public class TomcatWebThreadPoolHandler extends AbstractWebThreadPoolService {
} }
@Override @Override
public PoolRunStateInfo getWebRunStateInfo() { public ThreadPoolRunStateInfo getWebRunStateInfo() {
return webThreadPoolRunStateHandler.getPoolRunState(null, executor); return webThreadPoolRunStateHandler.getPoolRunState(null, executor);
} }
@Override @Override
public void updateWebThreadPool(PoolParameterInfo poolParameterInfo) { public void updateWebThreadPool(ThreadPoolParameterInfo threadPoolParameterInfo) {
try { try {
ThreadPoolExecutor tomcatExecutor = (ThreadPoolExecutor) executor; ThreadPoolExecutor tomcatExecutor = (ThreadPoolExecutor) executor;
int originalCoreSize = tomcatExecutor.getCorePoolSize(); int originalCoreSize = tomcatExecutor.getCorePoolSize();
int originalMaximumPoolSize = tomcatExecutor.getMaximumPoolSize(); int originalMaximumPoolSize = tomcatExecutor.getMaximumPoolSize();
long originalKeepAliveTime = tomcatExecutor.getKeepAliveTime(TimeUnit.SECONDS); long originalKeepAliveTime = tomcatExecutor.getKeepAliveTime(TimeUnit.SECONDS);
tomcatExecutor.setCorePoolSize(poolParameterInfo.getCoreSize()); tomcatExecutor.setCorePoolSize(threadPoolParameterInfo.getCoreSize());
tomcatExecutor.setMaximumPoolSize(poolParameterInfo.getMaxSize()); tomcatExecutor.setMaximumPoolSize(threadPoolParameterInfo.getMaxSize());
tomcatExecutor.setKeepAliveTime(poolParameterInfo.getKeepAliveTime(), TimeUnit.SECONDS); tomcatExecutor.setKeepAliveTime(threadPoolParameterInfo.getKeepAliveTime(), TimeUnit.SECONDS);
log.info( log.info(
"[TOMCAT] Changed web thread pool. " + "[TOMCAT] Changed web thread pool. " +
"\n coreSize :: [{}]" + "\n coreSize :: [{}]" +
"\n maxSize :: [{}]" + "\n maxSize :: [{}]" +
"\n keepAliveTime :: [{}]", "\n keepAliveTime :: [{}]",
String.format(CHANGE_DELIMITER, originalCoreSize, poolParameterInfo.getCoreSize()), String.format(CHANGE_DELIMITER, originalCoreSize, threadPoolParameterInfo.getCoreSize()),
String.format(CHANGE_DELIMITER, originalMaximumPoolSize, poolParameterInfo.getMaxSize()), String.format(CHANGE_DELIMITER, originalMaximumPoolSize, threadPoolParameterInfo.getMaxSize()),
String.format(CHANGE_DELIMITER, originalKeepAliveTime, poolParameterInfo.getKeepAliveTime())); String.format(CHANGE_DELIMITER, originalKeepAliveTime, threadPoolParameterInfo.getKeepAliveTime()));
} catch (Exception ex) { } catch (Exception ex) {
log.error("Failed to modify the Tomcat thread pool parameter.", ex); log.error("Failed to modify the Tomcat thread pool parameter.", ex);
} }

@ -17,10 +17,10 @@
package cn.hippo4j.core.executor.web; package cn.hippo4j.core.executor.web;
import cn.hippo4j.common.model.PoolBaseInfo; import cn.hippo4j.common.model.ThreadPoolBaseInfo;
import cn.hippo4j.common.model.PoolParameter; import cn.hippo4j.common.model.ThreadPoolParameter;
import cn.hippo4j.common.model.PoolParameterInfo; import cn.hippo4j.common.model.ThreadPoolParameterInfo;
import cn.hippo4j.common.model.PoolRunStateInfo; import cn.hippo4j.common.model.ThreadPoolRunStateInfo;
import cn.hippo4j.core.executor.DynamicThreadPoolExecutor; import cn.hippo4j.core.executor.DynamicThreadPoolExecutor;
import cn.hippo4j.core.toolkit.CalculateUtil; import cn.hippo4j.core.toolkit.CalculateUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
@ -63,8 +63,8 @@ public class UndertowWebThreadPoolHandler extends AbstractWebThreadPoolService {
} }
@Override @Override
public PoolBaseInfo simpleInfo() { public ThreadPoolBaseInfo simpleInfo() {
PoolBaseInfo poolBaseInfo = new PoolBaseInfo(); ThreadPoolBaseInfo poolBaseInfo = new ThreadPoolBaseInfo();
XnioWorker xnioWorker = (XnioWorker) executor; XnioWorker xnioWorker = (XnioWorker) executor;
try { try {
int coreSize = xnioWorker.getOption(Options.WORKER_TASK_CORE_THREADS); int coreSize = xnioWorker.getOption(Options.WORKER_TASK_CORE_THREADS);
@ -83,10 +83,10 @@ public class UndertowWebThreadPoolHandler extends AbstractWebThreadPoolService {
} }
@Override @Override
public PoolParameter getWebThreadPoolParameter() { public ThreadPoolParameter getWebThreadPoolParameter() {
PoolParameterInfo parameterInfo = null; ThreadPoolParameterInfo parameterInfo = null;
try { try {
parameterInfo = new PoolParameterInfo(); parameterInfo = new ThreadPoolParameterInfo();
XnioWorker xnioWorker = (XnioWorker) executor; XnioWorker xnioWorker = (XnioWorker) executor;
int minThreads = xnioWorker.getOption(Options.WORKER_TASK_CORE_THREADS); int minThreads = xnioWorker.getOption(Options.WORKER_TASK_CORE_THREADS);
int maxThreads = xnioWorker.getOption(Options.WORKER_TASK_MAX_THREADS); int maxThreads = xnioWorker.getOption(Options.WORKER_TASK_MAX_THREADS);
@ -102,8 +102,8 @@ public class UndertowWebThreadPoolHandler extends AbstractWebThreadPoolService {
} }
@Override @Override
public PoolRunStateInfo getWebRunStateInfo() { public ThreadPoolRunStateInfo getWebRunStateInfo() {
PoolRunStateInfo stateInfo = new PoolRunStateInfo(); ThreadPoolRunStateInfo stateInfo = new ThreadPoolRunStateInfo();
XnioWorker xnioWorker = (XnioWorker) executor; XnioWorker xnioWorker = (XnioWorker) executor;
Field field = ReflectionUtils.findField(XnioWorker.class, "taskPool"); Field field = ReflectionUtils.findField(XnioWorker.class, "taskPool");
@ -149,12 +149,12 @@ public class UndertowWebThreadPoolHandler extends AbstractWebThreadPoolService {
} }
@Override @Override
public void updateWebThreadPool(PoolParameterInfo poolParameterInfo) { public void updateWebThreadPool(ThreadPoolParameterInfo threadPoolParameterInfo) {
try { try {
XnioWorker xnioWorker = (XnioWorker) executor; XnioWorker xnioWorker = (XnioWorker) executor;
Integer coreSize = poolParameterInfo.getCoreSize(); Integer coreSize = threadPoolParameterInfo.getCoreSize();
Integer maxSize = poolParameterInfo.getMaxSize(); Integer maxSize = threadPoolParameterInfo.getMaxSize();
Integer keepAliveTime = poolParameterInfo.getKeepAliveTime(); Integer keepAliveTime = threadPoolParameterInfo.getKeepAliveTime();
int originalCoreSize = xnioWorker.getOption(Options.WORKER_TASK_CORE_THREADS); int originalCoreSize = xnioWorker.getOption(Options.WORKER_TASK_CORE_THREADS);
int originalMaximumPoolSize = xnioWorker.getOption(Options.WORKER_TASK_MAX_THREADS); int originalMaximumPoolSize = xnioWorker.getOption(Options.WORKER_TASK_MAX_THREADS);
int originalKeepAliveTime = xnioWorker.getOption(Options.WORKER_TASK_KEEPALIVE); int originalKeepAliveTime = xnioWorker.getOption(Options.WORKER_TASK_KEEPALIVE);

@ -17,7 +17,7 @@
package cn.hippo4j.core.executor.web; package cn.hippo4j.core.executor.web;
import cn.hippo4j.common.model.PoolRunStateInfo; import cn.hippo4j.common.model.ThreadPoolRunStateInfo;
import cn.hippo4j.common.toolkit.ByteConvertUtil; import cn.hippo4j.common.toolkit.ByteConvertUtil;
import cn.hippo4j.core.executor.state.AbstractThreadPoolRuntime; import cn.hippo4j.core.executor.state.AbstractThreadPoolRuntime;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
@ -34,8 +34,7 @@ import lombok.extern.slf4j.Slf4j;
public class WebThreadPoolRunStateHandler extends AbstractThreadPoolRuntime { public class WebThreadPoolRunStateHandler extends AbstractThreadPoolRuntime {
@Override @Override
protected PoolRunStateInfo supplement(PoolRunStateInfo poolRunStateInfo) { protected ThreadPoolRunStateInfo supplement(ThreadPoolRunStateInfo poolRunStateInfo) {
// 内存占比: 使用内存 / 最大内存
RuntimeInfo runtimeInfo = new RuntimeInfo(); RuntimeInfo runtimeInfo = new RuntimeInfo();
String memoryProportion = StrUtil.builder( String memoryProportion = StrUtil.builder(
"已分配: ", "已分配: ",

@ -17,10 +17,10 @@
package cn.hippo4j.core.executor.web; package cn.hippo4j.core.executor.web;
import cn.hippo4j.common.model.PoolBaseInfo; import cn.hippo4j.common.model.ThreadPoolBaseInfo;
import cn.hippo4j.common.model.PoolParameter; import cn.hippo4j.common.model.ThreadPoolParameter;
import cn.hippo4j.common.model.PoolParameterInfo; import cn.hippo4j.common.model.ThreadPoolParameterInfo;
import cn.hippo4j.common.model.PoolRunStateInfo; import cn.hippo4j.common.model.ThreadPoolRunStateInfo;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
@ -44,26 +44,26 @@ public interface WebThreadPoolService {
* *
* @return * @return
*/ */
PoolBaseInfo simpleInfo(); ThreadPoolBaseInfo simpleInfo();
/** /**
* Get web thread pool parameter. * Get web thread pool parameter.
* *
* @return * @return
*/ */
PoolParameter getWebThreadPoolParameter(); ThreadPoolParameter getWebThreadPoolParameter();
/** /**
* Get web run state info. * Get web run state info.
* *
* @return * @return
*/ */
PoolRunStateInfo getWebRunStateInfo(); ThreadPoolRunStateInfo getWebRunStateInfo();
/** /**
* Update web thread pool. * Update web thread pool.
* *
* @param poolParameterInfo * @param threadPoolParameterInfo
*/ */
void updateWebThreadPool(PoolParameterInfo poolParameterInfo); void updateWebThreadPool(ThreadPoolParameterInfo threadPoolParameterInfo);
} }

@ -17,7 +17,7 @@
package cn.hippo4j.core.springboot.starter.monitor; package cn.hippo4j.core.springboot.starter.monitor;
import cn.hippo4j.common.model.PoolRunStateInfo; import cn.hippo4j.common.model.ThreadPoolRunStateInfo;
import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage;
import cn.hippo4j.core.executor.state.ThreadPoolRunStateHandler; import cn.hippo4j.core.executor.state.ThreadPoolRunStateHandler;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -40,13 +40,13 @@ public abstract class AbstractDynamicThreadPoolMonitor implements DynamicThreadP
* *
* @param poolRunStateInfo * @param poolRunStateInfo
*/ */
protected abstract void execute(PoolRunStateInfo poolRunStateInfo); protected abstract void execute(ThreadPoolRunStateInfo poolRunStateInfo);
@Override @Override
public void collect() { public void collect() {
List<String> listDynamicThreadPoolId = GlobalThreadPoolManage.listThreadPoolId(); List<String> listDynamicThreadPoolId = GlobalThreadPoolManage.listThreadPoolId();
for (String each : listDynamicThreadPoolId) { for (String each : listDynamicThreadPoolId) {
PoolRunStateInfo poolRunState = threadPoolRunStateHandler.getPoolRunState(each); ThreadPoolRunStateInfo poolRunState = threadPoolRunStateHandler.getPoolRunState(each);
execute(poolRunState); execute(poolRunState);
} }
} }

@ -17,7 +17,7 @@
package cn.hippo4j.core.springboot.starter.monitor; package cn.hippo4j.core.springboot.starter.monitor;
import cn.hippo4j.common.model.PoolRunStateInfo; import cn.hippo4j.common.model.ThreadPoolRunStateInfo;
import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.JSONUtil;
import cn.hippo4j.core.executor.state.ThreadPoolRunStateHandler; import cn.hippo4j.core.executor.state.ThreadPoolRunStateHandler;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -36,7 +36,7 @@ public class LogMonitorHandler extends AbstractDynamicThreadPoolMonitor {
} }
@Override @Override
protected void execute(PoolRunStateInfo poolRunStateInfo) { protected void execute(ThreadPoolRunStateInfo poolRunStateInfo) {
log.info("{}", JSONUtil.toJSONString(poolRunStateInfo)); log.info("{}", JSONUtil.toJSONString(poolRunStateInfo));
} }

@ -18,7 +18,7 @@
package cn.hippo4j.core.springboot.starter.monitor; package cn.hippo4j.core.springboot.starter.monitor;
import cn.hippo4j.common.config.ApplicationContextHolder; import cn.hippo4j.common.config.ApplicationContextHolder;
import cn.hippo4j.common.model.PoolRunStateInfo; import cn.hippo4j.common.model.ThreadPoolRunStateInfo;
import cn.hippo4j.core.executor.state.ThreadPoolRunStateHandler; import cn.hippo4j.core.executor.state.ThreadPoolRunStateHandler;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
@ -43,15 +43,15 @@ public class MetricMonitorHandler extends AbstractDynamicThreadPoolMonitor {
private final static String APPLICATION_NAME_TAG = "application.name"; private final static String APPLICATION_NAME_TAG = "application.name";
private final Map<String, PoolRunStateInfo> RUN_STATE_CACHE = Maps.newConcurrentMap(); private final Map<String, ThreadPoolRunStateInfo> RUN_STATE_CACHE = Maps.newConcurrentMap();
public MetricMonitorHandler(ThreadPoolRunStateHandler threadPoolRunStateHandler) { public MetricMonitorHandler(ThreadPoolRunStateHandler threadPoolRunStateHandler) {
super(threadPoolRunStateHandler); super(threadPoolRunStateHandler);
} }
@Override @Override
protected void execute(PoolRunStateInfo poolRunStateInfo) { protected void execute(ThreadPoolRunStateInfo poolRunStateInfo) {
PoolRunStateInfo stateInfo = RUN_STATE_CACHE.get(poolRunStateInfo.getTpId()); ThreadPoolRunStateInfo stateInfo = RUN_STATE_CACHE.get(poolRunStateInfo.getTpId());
if (stateInfo == null) { if (stateInfo == null) {
RUN_STATE_CACHE.put(poolRunStateInfo.getTpId(), poolRunStateInfo); RUN_STATE_CACHE.put(poolRunStateInfo.getTpId(), poolRunStateInfo);
} else { } else {
@ -65,21 +65,21 @@ public class MetricMonitorHandler extends AbstractDynamicThreadPoolMonitor {
Tag.of(APPLICATION_NAME_TAG, applicationName)); Tag.of(APPLICATION_NAME_TAG, applicationName));
// load // load
Metrics.gauge(metricName("current.load"), tags, poolRunStateInfo, PoolRunStateInfo::getSimpleCurrentLoad); Metrics.gauge(metricName("current.load"), tags, poolRunStateInfo, ThreadPoolRunStateInfo::getSimpleCurrentLoad);
Metrics.gauge(metricName("peak.load"), tags, poolRunStateInfo, PoolRunStateInfo::getSimplePeakLoad); Metrics.gauge(metricName("peak.load"), tags, poolRunStateInfo, ThreadPoolRunStateInfo::getSimplePeakLoad);
// thread pool // thread pool
Metrics.gauge(metricName("core.size"), tags, poolRunStateInfo, PoolRunStateInfo::getCoreSize); Metrics.gauge(metricName("core.size"), tags, poolRunStateInfo, ThreadPoolRunStateInfo::getCoreSize);
Metrics.gauge(metricName("maximum.size"), tags, poolRunStateInfo, PoolRunStateInfo::getMaximumSize); Metrics.gauge(metricName("maximum.size"), tags, poolRunStateInfo, ThreadPoolRunStateInfo::getMaximumSize);
Metrics.gauge(metricName("current.size"), tags, poolRunStateInfo, PoolRunStateInfo::getPoolSize); Metrics.gauge(metricName("current.size"), tags, poolRunStateInfo, ThreadPoolRunStateInfo::getPoolSize);
Metrics.gauge(metricName("largest.size"), tags, poolRunStateInfo, PoolRunStateInfo::getLargestPoolSize); Metrics.gauge(metricName("largest.size"), tags, poolRunStateInfo, ThreadPoolRunStateInfo::getLargestPoolSize);
Metrics.gauge(metricName("active.size"), tags, poolRunStateInfo, PoolRunStateInfo::getActiveSize); Metrics.gauge(metricName("active.size"), tags, poolRunStateInfo, ThreadPoolRunStateInfo::getActiveSize);
// queue // queue
Metrics.gauge(metricName("queue.size"), tags, poolRunStateInfo, PoolRunStateInfo::getQueueSize); Metrics.gauge(metricName("queue.size"), tags, poolRunStateInfo, ThreadPoolRunStateInfo::getQueueSize);
Metrics.gauge(metricName("queue.capacity"), tags, poolRunStateInfo, PoolRunStateInfo::getQueueCapacity); Metrics.gauge(metricName("queue.capacity"), tags, poolRunStateInfo, ThreadPoolRunStateInfo::getQueueCapacity);
Metrics.gauge(metricName("queue.remaining.capacity"), tags, poolRunStateInfo, PoolRunStateInfo::getQueueRemainingCapacity); Metrics.gauge(metricName("queue.remaining.capacity"), tags, poolRunStateInfo, ThreadPoolRunStateInfo::getQueueRemainingCapacity);
// other // other
Metrics.gauge(metricName("completed.task.count"), tags, poolRunStateInfo, PoolRunStateInfo::getCompletedTaskCount); Metrics.gauge(metricName("completed.task.count"), tags, poolRunStateInfo, ThreadPoolRunStateInfo::getCompletedTaskCount);
Metrics.gauge(metricName("reject.count"), tags, poolRunStateInfo, PoolRunStateInfo::getRejectCount); Metrics.gauge(metricName("reject.count"), tags, poolRunStateInfo, ThreadPoolRunStateInfo::getRejectCount);
} }
private String metricName(String name) { private String metricName(String name) {

@ -19,8 +19,8 @@ package cn.hippo4j.core.springboot.starter.refresher;
import cn.hippo4j.common.api.ThreadPoolDynamicRefresh; import cn.hippo4j.common.api.ThreadPoolDynamicRefresh;
import cn.hippo4j.common.config.ApplicationContextHolder; import cn.hippo4j.common.config.ApplicationContextHolder;
import cn.hippo4j.common.model.PoolParameter; import cn.hippo4j.common.model.ThreadPoolParameter;
import cn.hippo4j.common.model.PoolParameterInfo; import cn.hippo4j.common.model.ThreadPoolParameterInfo;
import cn.hippo4j.common.notify.HippoBaseSendMessageService; import cn.hippo4j.common.notify.HippoBaseSendMessageService;
import cn.hippo4j.common.notify.NotifyConfigDTO; import cn.hippo4j.common.notify.NotifyConfigDTO;
import cn.hippo4j.common.notify.ThreadPoolNotifyAlarm; import cn.hippo4j.common.notify.ThreadPoolNotifyAlarm;
@ -121,11 +121,11 @@ public abstract class AbstractCoreThreadPoolDynamicRefresh implements ThreadPool
return; return;
} }
try { try {
PoolParameterInfo nowParameter = buildWebPoolParameter(bindableCoreProperties); ThreadPoolParameterInfo nowParameter = buildWebPoolParameter(bindableCoreProperties);
if (nowParameter != null) { if (nowParameter != null) {
WebThreadPoolHandlerChoose webThreadPoolHandlerChoose = ApplicationContextHolder.getBean(WebThreadPoolHandlerChoose.class); WebThreadPoolHandlerChoose webThreadPoolHandlerChoose = ApplicationContextHolder.getBean(WebThreadPoolHandlerChoose.class);
WebThreadPoolService webThreadPoolService = webThreadPoolHandlerChoose.choose(); WebThreadPoolService webThreadPoolService = webThreadPoolHandlerChoose.choose();
PoolParameter beforeParameter = webThreadPoolService.getWebThreadPoolParameter(); ThreadPoolParameter beforeParameter = webThreadPoolService.getWebThreadPoolParameter();
if (!Objects.equals(beforeParameter.getCoreSize(), nowParameter.getCoreSize()) if (!Objects.equals(beforeParameter.getCoreSize(), nowParameter.getCoreSize())
|| !Objects.equals(beforeParameter.getMaxSize(), nowParameter.getMaxSize()) || !Objects.equals(beforeParameter.getMaxSize(), nowParameter.getMaxSize())
|| !Objects.equals(beforeParameter.getKeepAliveTime(), nowParameter.getKeepAliveTime())) { || !Objects.equals(beforeParameter.getKeepAliveTime(), nowParameter.getKeepAliveTime())) {
@ -305,8 +305,8 @@ public abstract class AbstractCoreThreadPoolDynamicRefresh implements ThreadPool
* @param bindableCoreProperties * @param bindableCoreProperties
* @return * @return
*/ */
private PoolParameterInfo buildWebPoolParameter(BootstrapCoreProperties bindableCoreProperties) { private ThreadPoolParameterInfo buildWebPoolParameter(BootstrapCoreProperties bindableCoreProperties) {
PoolParameterInfo parameterInfo = null; ThreadPoolParameterInfo parameterInfo = null;
WebThreadPoolProperties poolProperties = null; WebThreadPoolProperties poolProperties = null;
if (bindableCoreProperties.getTomcat() != null) { if (bindableCoreProperties.getTomcat() != null) {
poolProperties = bindableCoreProperties.getTomcat(); poolProperties = bindableCoreProperties.getTomcat();
@ -316,7 +316,7 @@ public abstract class AbstractCoreThreadPoolDynamicRefresh implements ThreadPool
poolProperties = bindableCoreProperties.getJetty(); poolProperties = bindableCoreProperties.getJetty();
} }
if (poolProperties != null) { if (poolProperties != null) {
parameterInfo = new PoolParameterInfo(); parameterInfo = new ThreadPoolParameterInfo();
parameterInfo.setCoreSize(poolProperties.getCorePoolSize()); parameterInfo.setCoreSize(poolProperties.getCorePoolSize());
parameterInfo.setMaxSize(poolProperties.getMaximumPoolSize()); parameterInfo.setMaxSize(poolProperties.getMaximumPoolSize());
parameterInfo.setKeepAliveTime(poolProperties.getKeepAliveTime()); parameterInfo.setKeepAliveTime(poolProperties.getKeepAliveTime());

@ -18,7 +18,7 @@
package cn.hippo4j.springboot.starter.controller; package cn.hippo4j.springboot.starter.controller;
import cn.hippo4j.common.api.ThreadDetailState; import cn.hippo4j.common.api.ThreadDetailState;
import cn.hippo4j.common.model.PoolRunStateInfo; import cn.hippo4j.common.model.ThreadPoolRunStateInfo;
import cn.hippo4j.common.model.ThreadDetailStateInfo; import cn.hippo4j.common.model.ThreadDetailStateInfo;
import cn.hippo4j.common.web.base.Result; import cn.hippo4j.common.web.base.Result;
import cn.hippo4j.common.web.base.Results; import cn.hippo4j.common.web.base.Results;
@ -47,8 +47,8 @@ public class PoolRunStateController {
private final ThreadDetailState threadDetailState; private final ThreadDetailState threadDetailState;
@GetMapping("/run/state/{threadPoolId}") @GetMapping("/run/state/{threadPoolId}")
public Result<PoolRunStateInfo> getPoolRunState(@PathVariable("threadPoolId") String threadPoolId) { public Result<ThreadPoolRunStateInfo> getPoolRunState(@PathVariable("threadPoolId") String threadPoolId) {
PoolRunStateInfo poolRunState = threadPoolRunStateHandler.getPoolRunState(threadPoolId); ThreadPoolRunStateInfo poolRunState = threadPoolRunStateHandler.getPoolRunState(threadPoolId);
return Results.success(poolRunState); return Results.success(poolRunState);
} }

@ -17,9 +17,9 @@
package cn.hippo4j.springboot.starter.controller; package cn.hippo4j.springboot.starter.controller;
import cn.hippo4j.common.model.PoolBaseInfo; import cn.hippo4j.common.model.ThreadPoolBaseInfo;
import cn.hippo4j.common.model.PoolParameterInfo; import cn.hippo4j.common.model.ThreadPoolParameterInfo;
import cn.hippo4j.common.model.PoolRunStateInfo; import cn.hippo4j.common.model.ThreadPoolRunStateInfo;
import cn.hippo4j.common.web.base.Result; import cn.hippo4j.common.web.base.Result;
import cn.hippo4j.common.web.base.Results; import cn.hippo4j.common.web.base.Results;
import cn.hippo4j.core.executor.web.WebThreadPoolHandlerChoose; import cn.hippo4j.core.executor.web.WebThreadPoolHandlerChoose;
@ -42,20 +42,20 @@ public class WebThreadPoolController {
private final WebThreadPoolHandlerChoose webThreadPoolServiceChoose; private final WebThreadPoolHandlerChoose webThreadPoolServiceChoose;
@GetMapping("/web/base/info") @GetMapping("/web/base/info")
public Result<PoolBaseInfo> getPoolBaseState() { public Result<ThreadPoolBaseInfo> getPoolBaseState() {
PoolBaseInfo poolBaseInfo = webThreadPoolServiceChoose.choose().simpleInfo(); ThreadPoolBaseInfo poolBaseInfo = webThreadPoolServiceChoose.choose().simpleInfo();
return Results.success(poolBaseInfo); return Results.success(poolBaseInfo);
} }
@GetMapping("/web/run/state") @GetMapping("/web/run/state")
public Result<PoolRunStateInfo> getPoolRunState() { public Result<ThreadPoolRunStateInfo> getPoolRunState() {
PoolRunStateInfo poolRunState = webThreadPoolServiceChoose.choose().getWebRunStateInfo(); ThreadPoolRunStateInfo poolRunState = webThreadPoolServiceChoose.choose().getWebRunStateInfo();
return Results.success(poolRunState); return Results.success(poolRunState);
} }
@PostMapping("/web/update/pool") @PostMapping("/web/update/pool")
public Result<Void> updateWebThreadPool(@RequestBody PoolParameterInfo poolParameterInfo) { public Result<Void> updateWebThreadPool(@RequestBody ThreadPoolParameterInfo threadPoolParameterInfo) {
webThreadPoolServiceChoose.choose().updateWebThreadPool(poolParameterInfo); webThreadPoolServiceChoose.choose().updateWebThreadPool(threadPoolParameterInfo);
return Results.success(); return Results.success();
} }
} }

@ -17,7 +17,7 @@
package cn.hippo4j.springboot.starter.core; package cn.hippo4j.springboot.starter.core;
import cn.hippo4j.common.model.PoolParameterInfo; import cn.hippo4j.common.model.ThreadPoolParameterInfo;
import cn.hippo4j.common.toolkit.ContentUtil; import cn.hippo4j.common.toolkit.ContentUtil;
import cn.hippo4j.common.toolkit.GroupKey; import cn.hippo4j.common.toolkit.GroupKey;
import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.JSONUtil;
@ -119,7 +119,7 @@ public class ClientWorker {
try { try {
String content = getServerConfig(namespace, itemId, tpId, 3000L); String content = getServerConfig(namespace, itemId, tpId, 3000L);
CacheData cacheData = cacheMap.get(tpId); CacheData cacheData = cacheMap.get(tpId);
String poolContent = ContentUtil.getPoolContent(JSONUtil.parseObject(content, PoolParameterInfo.class)); String poolContent = ContentUtil.getPoolContent(JSONUtil.parseObject(content, ThreadPoolParameterInfo.class));
cacheData.setContent(poolContent); cacheData.setContent(poolContent);
} catch (Exception ex) { } catch (Exception ex) {
// ignore // ignore
@ -243,7 +243,7 @@ public class ClientWorker {
String serverConfig; String serverConfig;
try { try {
serverConfig = getServerConfig(namespace, itemId, tpId, 3000L); serverConfig = getServerConfig(namespace, itemId, tpId, 3000L);
PoolParameterInfo poolInfo = JSONUtil.parseObject(serverConfig, PoolParameterInfo.class); ThreadPoolParameterInfo poolInfo = JSONUtil.parseObject(serverConfig, ThreadPoolParameterInfo.class);
cacheData.setContent(ContentUtil.getPoolContent(poolInfo)); cacheData.setContent(ContentUtil.getPoolContent(poolInfo));
} catch (Exception ex) { } catch (Exception ex) {
log.error("Cache Data Error. Service Unavailable :: {}", ex.getMessage()); log.error("Cache Data Error. Service Unavailable :: {}", ex.getMessage());

@ -20,7 +20,7 @@ package cn.hippo4j.springboot.starter.core;
import cn.hippo4j.common.config.ApplicationContextHolder; import cn.hippo4j.common.config.ApplicationContextHolder;
import cn.hippo4j.common.constant.Constants; import cn.hippo4j.common.constant.Constants;
import cn.hippo4j.common.enums.EnableEnum; import cn.hippo4j.common.enums.EnableEnum;
import cn.hippo4j.common.model.PoolParameterInfo; import cn.hippo4j.common.model.ThreadPoolParameterInfo;
import cn.hippo4j.common.notify.ThreadPoolNotifyAlarm; import cn.hippo4j.common.notify.ThreadPoolNotifyAlarm;
import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.JSONUtil;
import cn.hippo4j.common.web.base.Result; import cn.hippo4j.common.web.base.Result;
@ -140,12 +140,12 @@ public final class DynamicThreadPoolPostProcessor implements BeanPostProcessor {
Result result; Result result;
boolean isSubscribe = false; boolean isSubscribe = false;
ThreadPoolExecutor newDynamicPoolExecutor = null; ThreadPoolExecutor newDynamicPoolExecutor = null;
PoolParameterInfo ppi = new PoolParameterInfo(); ThreadPoolParameterInfo ppi = new ThreadPoolParameterInfo();
try { try {
result = httpAgent.httpGetByConfig(Constants.CONFIG_CONTROLLER_PATH, null, queryStrMap, 5000L); result = httpAgent.httpGetByConfig(Constants.CONFIG_CONTROLLER_PATH, null, queryStrMap, 5000L);
if (result.isSuccess() && result.getData() != null) { if (result.isSuccess() && result.getData() != null) {
String resultJsonStr = JSONUtil.toJSONString(result.getData()); String resultJsonStr = JSONUtil.toJSONString(result.getData());
if ((ppi = JSONUtil.parseObject(resultJsonStr, PoolParameterInfo.class)) != null) { if ((ppi = JSONUtil.parseObject(resultJsonStr, ThreadPoolParameterInfo.class)) != null) {
// Create a thread pool with relevant parameters. // Create a thread pool with relevant parameters.
BlockingQueue workQueue = QueueTypeEnum.createBlockingQueue(ppi.getQueueType(), ppi.getCapacity()); BlockingQueue workQueue = QueueTypeEnum.createBlockingQueue(ppi.getQueueType(), ppi.getCapacity());
newDynamicPoolExecutor = ThreadPoolBuilder.builder() newDynamicPoolExecutor = ThreadPoolBuilder.builder()

@ -18,8 +18,8 @@
package cn.hippo4j.springboot.starter.core; package cn.hippo4j.springboot.starter.core;
import cn.hippo4j.common.enums.EnableEnum; import cn.hippo4j.common.enums.EnableEnum;
import cn.hippo4j.common.model.PoolParameter; import cn.hippo4j.common.model.ThreadPoolParameter;
import cn.hippo4j.common.model.PoolParameterInfo; import cn.hippo4j.common.model.ThreadPoolParameterInfo;
import cn.hippo4j.common.notify.request.ChangeParameterNotifyRequest; import cn.hippo4j.common.notify.request.ChangeParameterNotifyRequest;
import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.JSONUtil;
import cn.hippo4j.core.executor.DynamicThreadPoolExecutor; import cn.hippo4j.core.executor.DynamicThreadPoolExecutor;
@ -57,7 +57,7 @@ public class ServerThreadPoolDynamicRefresh implements ThreadPoolDynamicRefresh
@Override @Override
public void dynamicRefresh(String content) { public void dynamicRefresh(String content) {
PoolParameterInfo parameter = JSONUtil.parseObject(content, PoolParameterInfo.class); ThreadPoolParameterInfo parameter = JSONUtil.parseObject(content, ThreadPoolParameterInfo.class);
String threadPoolId = parameter.getTpId(); String threadPoolId = parameter.getTpId();
ThreadPoolExecutor executor = GlobalThreadPoolManage.getExecutorService(threadPoolId).getExecutor(); ThreadPoolExecutor executor = GlobalThreadPoolManage.getExecutorService(threadPoolId).getExecutor();
@ -71,7 +71,7 @@ public class ServerThreadPoolDynamicRefresh implements ThreadPoolDynamicRefresh
* @param parameter * @param parameter
* @param executor * @param executor
*/ */
public void refreshDynamicPool(PoolParameter parameter, ThreadPoolExecutor executor) { public void refreshDynamicPool(ThreadPoolParameter parameter, ThreadPoolExecutor executor) {
String threadPoolId = parameter.getTpId(); String threadPoolId = parameter.getTpId();
int originalCoreSize = executor.getCorePoolSize(); int originalCoreSize = executor.getCorePoolSize();
int originalMaximumPoolSize = executor.getMaximumPoolSize(); int originalMaximumPoolSize = executor.getMaximumPoolSize();
@ -129,7 +129,7 @@ public class ServerThreadPoolDynamicRefresh implements ThreadPoolDynamicRefresh
* @param executor * @param executor
* @param parameter * @param parameter
*/ */
public void changePoolInfo(ThreadPoolExecutor executor, PoolParameter parameter) { public void changePoolInfo(ThreadPoolExecutor executor, ThreadPoolParameter parameter) {
if (parameter.getCoreSize() != null && parameter.getMaxSize() != null) { if (parameter.getCoreSize() != null && parameter.getMaxSize() != null) {
if (parameter.getMaxSize() < executor.getMaximumPoolSize()) { if (parameter.getMaxSize() < executor.getMaximumPoolSize()) {
executor.setCorePoolSize(parameter.getCoreSize()); executor.setCorePoolSize(parameter.getCoreSize());

@ -17,7 +17,7 @@
package cn.hippo4j.springboot.starter.monitor.collect; package cn.hippo4j.springboot.starter.monitor.collect;
import cn.hippo4j.common.model.PoolRunStateInfo; import cn.hippo4j.common.model.ThreadPoolRunStateInfo;
import cn.hippo4j.common.monitor.AbstractMessage; import cn.hippo4j.common.monitor.AbstractMessage;
import cn.hippo4j.common.monitor.Message; import cn.hippo4j.common.monitor.Message;
import cn.hippo4j.common.monitor.MessageTypeEnum; import cn.hippo4j.common.monitor.MessageTypeEnum;
@ -50,7 +50,7 @@ public class RunTimeInfoCollector extends AbstractThreadPoolRuntime implements C
List<Message> runtimeMessages = Lists.newArrayList(); List<Message> runtimeMessages = Lists.newArrayList();
List<String> listThreadPoolId = GlobalThreadPoolManage.listThreadPoolId(); List<String> listThreadPoolId = GlobalThreadPoolManage.listThreadPoolId();
for (String each : listThreadPoolId) { for (String each : listThreadPoolId) {
PoolRunStateInfo poolRunState = getPoolRunState(each); ThreadPoolRunStateInfo poolRunState = getPoolRunState(each);
RuntimeMessage runtimeMessage = BeanUtil.toBean(poolRunState, RuntimeMessage.class); RuntimeMessage runtimeMessage = BeanUtil.toBean(poolRunState, RuntimeMessage.class);
runtimeMessage.setGroupKey(getThreadPoolIdentify(each, properties.getItemId(), properties.getNamespace())); runtimeMessage.setGroupKey(getThreadPoolIdentify(each, properties.getItemId(), properties.getNamespace()));
runtimeMessages.add(runtimeMessage); runtimeMessages.add(runtimeMessage);
@ -61,7 +61,7 @@ public class RunTimeInfoCollector extends AbstractThreadPoolRuntime implements C
} }
@Override @Override
protected PoolRunStateInfo supplement(PoolRunStateInfo basePoolRunStateInfo) { protected ThreadPoolRunStateInfo supplement(ThreadPoolRunStateInfo threadPoolRunStateInfo) {
return basePoolRunStateInfo; return threadPoolRunStateInfo;
} }
} }

Loading…
Cancel
Save