From 46ecfe40fd045339d4c2c48aa61f914287dbda51 Mon Sep 17 00:00:00 2001 From: noear Date: Thu, 3 Aug 2023 22:59:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20solon.health.detector=20?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=AE=9E=E7=8E=B0=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=A4=8D=E7=94=A8=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../health/detector/DetectorManager.java | 23 +++++++++++++++++-- .../admin/client/config/XPluginImpl.java | 7 ++++++ .../admin/client/services/MonitorService.java | 5 +++- 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/solon-projects/solon-base/solon.health.detector/src/main/java/org/noear/solon/health/detector/DetectorManager.java b/solon-projects/solon-base/solon.health.detector/src/main/java/org/noear/solon/health/detector/DetectorManager.java index 2026faedfb..80b5205273 100644 --- a/solon-projects/solon-base/solon.health.detector/src/main/java/org/noear/solon/health/detector/DetectorManager.java +++ b/solon-projects/solon-base/solon.health.detector/src/main/java/org/noear/solon/health/detector/DetectorManager.java @@ -36,8 +36,8 @@ public static Detector get(String name) { /** * 获取全部 */ - public static Collection getAll() { - return Collections.unmodifiableCollection(detectorMap.values()); + public static Collection all() { + return detectorMap.values(); } @@ -65,4 +65,23 @@ public static Map getMore(String... names) { return tmp; } + + /** + * 启动 + * */ + public static void start(String... names) throws Throwable{ + for (String name : names) { + if ("*".equals(name)) { + for (Detector detector : detectorMap.values()) { + detector.start(); + } + break; + } else { + Detector detector = get(name); + if (detector != null) { + detector.start(); + } + } + } + } } \ No newline at end of file diff --git a/solon-projects/solon-tool/solon-admin-client/src/main/java/org/noear/solon/admin/client/config/XPluginImpl.java b/solon-projects/solon-tool/solon-admin-client/src/main/java/org/noear/solon/admin/client/config/XPluginImpl.java index d329d901d7..da3e013e33 100644 --- a/solon-projects/solon-tool/solon-admin-client/src/main/java/org/noear/solon/admin/client/config/XPluginImpl.java +++ b/solon-projects/solon-tool/solon-admin-client/src/main/java/org/noear/solon/admin/client/config/XPluginImpl.java @@ -4,6 +4,9 @@ import org.noear.solon.admin.client.annotation.EnableAdminClient; import org.noear.solon.core.AopContext; import org.noear.solon.core.Plugin; +import org.noear.solon.core.event.AppLoadEndEvent; +import org.noear.solon.core.event.EventBus; +import org.noear.solon.health.detector.DetectorManager; /** * @author noear @@ -17,5 +20,9 @@ public void start(AopContext context) throws Throwable { } context.beanScan("org.noear.solon.admin.client"); + + EventBus.subscribe(AppLoadEndEvent.class, e->{ + DetectorManager.start("*"); + }); } } diff --git a/solon-projects/solon-tool/solon-admin-client/src/main/java/org/noear/solon/admin/client/services/MonitorService.java b/solon-projects/solon-tool/solon-admin-client/src/main/java/org/noear/solon/admin/client/services/MonitorService.java index 15900be681..716c70ebc2 100644 --- a/solon-projects/solon-tool/solon-admin-client/src/main/java/org/noear/solon/admin/client/services/MonitorService.java +++ b/solon-projects/solon-tool/solon-admin-client/src/main/java/org/noear/solon/admin/client/services/MonitorService.java @@ -24,7 +24,10 @@ public class MonitorService { * @return 所有监视器信息 */ public Collection getMonitors() { - return DetectorManager.getAll().parallelStream().map(it -> new Detector(it.getName(), it.getInfo())).collect(Collectors.toSet()); + return DetectorManager.all() + .parallelStream() + .map(it -> new Detector(it.getName(), it.getInfo())) + .collect(Collectors.toList()); } }