From f49fd99791170abcc49116b42b11e02f520be8d7 Mon Sep 17 00:00:00 2001 From: yezi <86636468+Dawanyezhi@users.noreply.github.com> Date: Fri, 24 Nov 2023 14:53:57 +0800 Subject: [PATCH] fix:Fix the problem that a custom implementation class of ThreadPoolMonitor cannot be introduced through the SPI mechanism in the ReportingEventExecutor class when the project is started. (#1518) --- .../DynamicThreadPoolMicrometerMonitorHandler.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/threadpool/monitor/micrometer/src/main/java/cn/hippo4j/monitor/micrometer/DynamicThreadPoolMicrometerMonitorHandler.java b/threadpool/monitor/micrometer/src/main/java/cn/hippo4j/monitor/micrometer/DynamicThreadPoolMicrometerMonitorHandler.java index 5bfe747cae..2263b324a1 100644 --- a/threadpool/monitor/micrometer/src/main/java/cn/hippo4j/monitor/micrometer/DynamicThreadPoolMicrometerMonitorHandler.java +++ b/threadpool/monitor/micrometer/src/main/java/cn/hippo4j/monitor/micrometer/DynamicThreadPoolMicrometerMonitorHandler.java @@ -17,12 +17,14 @@ package cn.hippo4j.monitor.micrometer; +import cn.hippo4j.common.extension.spi.ServiceLoaderRegistry; import cn.hippo4j.core.config.ApplicationContextHolder; import cn.hippo4j.common.model.ThreadPoolRunStateInfo; import cn.hippo4j.common.toolkit.BeanUtil; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.core.executor.state.ThreadPoolRunStateHandler; import cn.hippo4j.monitor.base.AbstractDynamicThreadPoolMonitor; +import cn.hippo4j.threadpool.monitor.api.ThreadPoolMonitor; import cn.hippo4j.threadpool.monitor.support.MonitorTypeEnum; import io.micrometer.core.instrument.Metrics; import io.micrometer.core.instrument.Tag; @@ -48,6 +50,10 @@ public DynamicThreadPoolMicrometerMonitorHandler(ThreadPoolRunStateHandler handl super(handler); } + static { + ServiceLoaderRegistry.register(ThreadPoolMonitor.class); + } + @Override protected void execute(ThreadPoolRunStateInfo poolRunStateInfo) { ThreadPoolRunStateInfo stateInfo = runStateCache.get(poolRunStateInfo.getTpId());