From b1e181d5b24509b74b51938e54752b132c7b535d Mon Sep 17 00:00:00 2001 From: magestack Date: Fri, 9 Jun 2023 21:49:17 +0800 Subject: [PATCH 1/2] Fix alarm notification asynchronous thread pool factory error (#1377) --- .../alarm/handler/DefaultThreadPoolCheckAlarmHandler.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/kernel/alarm/src/main/java/cn/hippo4j/threadpool/alarm/handler/DefaultThreadPoolCheckAlarmHandler.java b/kernel/alarm/src/main/java/cn/hippo4j/threadpool/alarm/handler/DefaultThreadPoolCheckAlarmHandler.java index 9bf93f81..f4b7710f 100644 --- a/kernel/alarm/src/main/java/cn/hippo4j/threadpool/alarm/handler/DefaultThreadPoolCheckAlarmHandler.java +++ b/kernel/alarm/src/main/java/cn/hippo4j/threadpool/alarm/handler/DefaultThreadPoolCheckAlarmHandler.java @@ -75,8 +75,10 @@ public class DefaultThreadPoolCheckAlarmHandler implements Runnable, ThreadPoolC private final AtomicInteger count = new AtomicInteger(); @Override - public Thread newThread(Runnable r) { - return new Thread("client.execute.timeout.alarm_" + count.incrementAndGet()); + public Thread newThread(Runnable runnable) { + Thread thread = new Thread(runnable, "client.execute.timeout.alarm_" + count.incrementAndGet()); + thread.setDaemon(true); + return thread; } }, new ThreadPoolExecutor.AbortPolicy()); From d3e76ff6682027e288595c59fc2e4f0ac2320bf2 Mon Sep 17 00:00:00 2001 From: zjHe <34431616+zjHe@users.noreply.github.com> Date: Tue, 13 Jun 2023 14:26:55 +0800 Subject: [PATCH 2/2] @EnableDynamicThreadPool controls MicrometerMonitorAutoConfiguration (#1380) --- .../elasticsearch/ElasticSearchMonitorAutoConfiguration.java | 3 +++ .../monitor/local/log/LocalLogMonitorAutoConfiguration.java | 2 ++ .../monitor/micrometer/MicrometerMonitorAutoConfiguration.java | 2 ++ 3 files changed, 7 insertions(+) diff --git a/starters/threadpool/monitor/hippo4j-spring-boot-starter-monitor-elasticsearch/src/main/java/cn/hippo4j/springboot/starter/monitor/elasticsearch/ElasticSearchMonitorAutoConfiguration.java b/starters/threadpool/monitor/hippo4j-spring-boot-starter-monitor-elasticsearch/src/main/java/cn/hippo4j/springboot/starter/monitor/elasticsearch/ElasticSearchMonitorAutoConfiguration.java index 73954005..c5b2e2f0 100644 --- a/starters/threadpool/monitor/hippo4j-spring-boot-starter-monitor-elasticsearch/src/main/java/cn/hippo4j/springboot/starter/monitor/elasticsearch/ElasticSearchMonitorAutoConfiguration.java +++ b/starters/threadpool/monitor/hippo4j-spring-boot-starter-monitor-elasticsearch/src/main/java/cn/hippo4j/springboot/starter/monitor/elasticsearch/ElasticSearchMonitorAutoConfiguration.java @@ -18,9 +18,11 @@ package cn.hippo4j.springboot.starter.monitor.elasticsearch; import cn.hippo4j.common.constant.Constants; +import cn.hippo4j.core.enable.MarkerConfiguration; import cn.hippo4j.monitor.elasticsearch.AdapterThreadPoolElasticSearchMonitorHandler; import cn.hippo4j.monitor.elasticsearch.DynamicThreadPoolElasticSearchMonitorHandler; import cn.hippo4j.monitor.elasticsearch.WebThreadPoolElasticSearchMonitorHandler; +import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; @@ -30,6 +32,7 @@ import org.springframework.context.annotation.Configuration; * Elastic-search monitor auto configuration. */ @Configuration +@ConditionalOnBean(MarkerConfiguration.Marker.class) @ConditionalOnExpression("'${spring.dynamic.thread-pool.monitor.collect-types:}'.contains('elasticsearch')") @ConditionalOnProperty(prefix = Constants.CONFIGURATION_PROPERTIES_PREFIX, value = "enable", matchIfMissing = true, havingValue = "true") public class ElasticSearchMonitorAutoConfiguration { diff --git a/starters/threadpool/monitor/hippo4j-spring-boot-starter-monitor-local-log/src/main/java/cn/hippo4j/springboot/starter/monitor/local/log/LocalLogMonitorAutoConfiguration.java b/starters/threadpool/monitor/hippo4j-spring-boot-starter-monitor-local-log/src/main/java/cn/hippo4j/springboot/starter/monitor/local/log/LocalLogMonitorAutoConfiguration.java index ae6e50d3..01394baa 100644 --- a/starters/threadpool/monitor/hippo4j-spring-boot-starter-monitor-local-log/src/main/java/cn/hippo4j/springboot/starter/monitor/local/log/LocalLogMonitorAutoConfiguration.java +++ b/starters/threadpool/monitor/hippo4j-spring-boot-starter-monitor-local-log/src/main/java/cn/hippo4j/springboot/starter/monitor/local/log/LocalLogMonitorAutoConfiguration.java @@ -19,6 +19,7 @@ package cn.hippo4j.springboot.starter.monitor.local.log; import cn.hippo4j.adapter.web.WebThreadPoolService; import cn.hippo4j.common.constant.Constants; +import cn.hippo4j.core.enable.MarkerConfiguration; import cn.hippo4j.monitor.local.log.AdapterThreadPoolLocalLogMonitorHandler; import cn.hippo4j.monitor.local.log.DynamicThreadPoolLocalLogMonitorHandler; import cn.hippo4j.monitor.local.log.WebThreadPoolLocalLogMonitorHandler; @@ -32,6 +33,7 @@ import org.springframework.context.annotation.Configuration; * Local log monitor auto configuration. */ @Configuration +@ConditionalOnBean(MarkerConfiguration.Marker.class) @ConditionalOnExpression("'${spring.dynamic.thread-pool.monitor.collect-types:}'.contains('log')") @ConditionalOnProperty(prefix = Constants.CONFIGURATION_PROPERTIES_PREFIX, value = "enable", matchIfMissing = true, havingValue = "true") public class LocalLogMonitorAutoConfiguration { diff --git a/starters/threadpool/monitor/hippo4j-spring-boot-starter-monitor-micrometer/src/main/java/cn/hippo4j/springboot/starter/monitor/micrometer/MicrometerMonitorAutoConfiguration.java b/starters/threadpool/monitor/hippo4j-spring-boot-starter-monitor-micrometer/src/main/java/cn/hippo4j/springboot/starter/monitor/micrometer/MicrometerMonitorAutoConfiguration.java index 02ea862e..5946a2c1 100644 --- a/starters/threadpool/monitor/hippo4j-spring-boot-starter-monitor-micrometer/src/main/java/cn/hippo4j/springboot/starter/monitor/micrometer/MicrometerMonitorAutoConfiguration.java +++ b/starters/threadpool/monitor/hippo4j-spring-boot-starter-monitor-micrometer/src/main/java/cn/hippo4j/springboot/starter/monitor/micrometer/MicrometerMonitorAutoConfiguration.java @@ -19,6 +19,7 @@ package cn.hippo4j.springboot.starter.monitor.micrometer; import cn.hippo4j.adapter.web.WebThreadPoolService; import cn.hippo4j.common.constant.Constants; +import cn.hippo4j.core.enable.MarkerConfiguration; import cn.hippo4j.monitor.micrometer.AdapterThreadPoolMicrometerMonitorHandler; import cn.hippo4j.monitor.micrometer.DynamicThreadPoolMicrometerMonitorHandler; import cn.hippo4j.monitor.micrometer.WebThreadPoolMicrometerMonitorHandler; @@ -32,6 +33,7 @@ import org.springframework.context.annotation.Configuration; * Micrometer monitor auto configuration. */ @Configuration +@ConditionalOnBean(MarkerConfiguration.Marker.class) @ConditionalOnExpression("'${spring.dynamic.thread-pool.monitor.collect-types:}'.contains('micrometer')") @ConditionalOnProperty(prefix = Constants.CONFIGURATION_PROPERTIES_PREFIX, value = "enable", matchIfMissing = true, havingValue = "true") public class MicrometerMonitorAutoConfiguration {