diff --git a/hippo4j-common/src/main/java/cn/hippo4j/common/executor/support/BlockingQueueTypeEnum.java b/hippo4j-common/src/main/java/cn/hippo4j/common/executor/support/BlockingQueueTypeEnum.java index 414f0c11..1d675fa5 100644 --- a/hippo4j-common/src/main/java/cn/hippo4j/common/executor/support/BlockingQueueTypeEnum.java +++ b/hippo4j-common/src/main/java/cn/hippo4j/common/executor/support/BlockingQueueTypeEnum.java @@ -146,10 +146,10 @@ public enum BlockingQueueTypeEnum { return queueTypeEnum.map(each -> each.name).orElse(""); } - public static BlockingQueueTypeEnum getBlockingQueueTypeEnumByName(String name){ + public static BlockingQueueTypeEnum getBlockingQueueTypeEnumByName(String name) { Optional queueTypeEnum = Arrays.stream(BlockingQueueTypeEnum.values()) .filter(each -> each.name.equals(name)) .findFirst(); - return queueTypeEnum.get(); + return queueTypeEnum.orElse(LINKED_BLOCKING_QUEUE); } } diff --git a/hippo4j-common/src/main/java/cn/hippo4j/common/executor/support/RejectedPolicyTypeEnum.java b/hippo4j-common/src/main/java/cn/hippo4j/common/executor/support/RejectedPolicyTypeEnum.java index 597751fd..1a158816 100644 --- a/hippo4j-common/src/main/java/cn/hippo4j/common/executor/support/RejectedPolicyTypeEnum.java +++ b/hippo4j-common/src/main/java/cn/hippo4j/common/executor/support/RejectedPolicyTypeEnum.java @@ -99,4 +99,11 @@ public enum RejectedPolicyTypeEnum { public static String getRejectedNameByType(int type) { return createPolicy(type).getClass().getSimpleName(); } + + public static RejectedPolicyTypeEnum getRejectedPolicyTypeEnumByName(String name) { + Optional rejectedTypeEnum = Stream.of(RejectedPolicyTypeEnum.values()) + .filter(each -> each.name.equals(name)) + .findFirst(); + return rejectedTypeEnum.orElse(ABORT_POLICY); + } } diff --git a/hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolPostProcessor.java b/hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolPostProcessor.java index f3b33ba9..aef0fe0c 100644 --- a/hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolPostProcessor.java +++ b/hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolPostProcessor.java @@ -172,7 +172,7 @@ public final class DynamicThreadPoolPostProcessor implements BeanPostProcessor { dynamicThreadPoolWrapper.setExecutor(newDynamicThreadPoolExecutor); isSubscribe = true; } - }else { + } else { // DynamicThreadPool configuration undefined in server DynamicThreadPoolRegisterParameter parameterInfo = DynamicThreadPoolRegisterParameter.builder() .threadPoolId(threadPoolId) @@ -182,9 +182,9 @@ public final class DynamicThreadPoolPostProcessor implements BeanPostProcessor { .blockingQueueType(BlockingQueueTypeEnum.getBlockingQueueTypeEnumByName(executor.getQueue().getClass().getSimpleName())) .capacity(executor.getQueue().remainingCapacity()) .allowCoreThreadTimeOut(executor.allowsCoreThreadTimeOut()) + .keepAliveTime(executor.getKeepAliveTime(TimeUnit.MILLISECONDS)) .isAlarm(false) - //todo 如何根据拒绝策略的代理类获取到对应的枚举 - .rejectedPolicyType(RejectedPolicyTypeEnum.ABORT_POLICY) + .rejectedPolicyType(RejectedPolicyTypeEnum.getRejectedPolicyTypeEnumByName(((DynamicThreadPoolExecutor) executor).getRedundancyHandler().getClass().getSimpleName())) .build(); DynamicThreadPoolRegisterWrapper registerWrapper = DynamicThreadPoolRegisterWrapper.builder() .dynamicThreadPoolRegisterParameter(parameterInfo)