ruoyi-extend/ruoyi-monitor-admin/pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/event/NotifierEvent.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/CustomNotifier.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/InfoNotifier.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
ruoyi-extend/ruoyi-monitor-admin/pom.xml
@@ -39,6 +39,11 @@ <artifactId>lombok</artifactId> </dependency> <dependency> <groupId>org.dromara</groupId> <artifactId>ruoyi-common-core</artifactId> </dependency> </dependencies> <build> ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/event/NotifierEvent.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,44 @@ package org.dromara.monitor.admin.event; import lombok.Data; import java.io.Serial; import java.io.Serializable; /** * éç¥äºä»¶ * * @author AprilWind */ @Data public class NotifierEvent implements Serializable { @Serial private static final long serialVersionUID = 1L; /** * å®ä¾æ³¨ååç§° */ private String registName; /** * å®ä¾ç¶æåç§° */ private String statusName; /** * å®ä¾ID */ private String instanceId; /** * å®ä¾ç¶æ */ private String status; /** * æå¡URL */ private String serviceUrl; } ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/CustomNotifier.java
@@ -6,6 +6,8 @@ import de.codecentric.boot.admin.server.domain.events.InstanceStatusChangedEvent; import de.codecentric.boot.admin.server.notify.AbstractEventNotifier; import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.utils.SpringUtils; import org.dromara.monitor.admin.event.NotifierEvent; import org.springframework.stereotype.Component; import reactor.core.publisher.Mono; @@ -38,46 +40,24 @@ String status = ((InstanceStatusChangedEvent) event).getStatusInfo().getStatus(); // è·åæå¡URL String serviceUrl = instance.getRegistration().getServiceUrl(); String statusName = null; // æ ¹æ®å®ä¾ç¶ææ§è¡ç¸åºçæä½ switch (status) { // æå¡ä¸çº¿ï¼å®ä¾æåå¯å¨å¹¶å¯ä»¥æ£å¸¸å¤ç请æ±ï¼ case STATUS_UP: statusName = "æå¡ä¸çº¿"; break; // æå¡ç¦»çº¿ï¼å®ä¾è¢«æå¨æèªå¨å°ä»æå¡ä¸ç§»é¤ï¼ case STATUS_OFFLINE: statusName = "æå¡ç¦»çº¿"; break; // æå¡åéï¼è¡¨ç¤ºå®ä¾å¨æäºæ¹é¢åéï¼å¯è½æ æ³å®å ¨æä¾æææå¡ï¼ case STATUS_RESTRICTED: statusName = "æå¡åé"; break; // 忢æå¡ç¶æï¼è¡¨ç¤ºå®ä¾å·²è¢«æ è®°ä¸ºåæ¢æä¾æå¡ï¼å¯è½æ¯è®¡åå ç»´æ¤ææµè¯ï¼ case STATUS_OUT_OF_SERVICE: statusName = "忢æå¡ç¶æ"; break; // æå¡ä¸çº¿ï¼å®ä¾å å´©æºãé误æå ¶ä»åå 忢è¿è¡ï¼ case STATUS_DOWN: statusName = "æå¡ä¸çº¿"; break; // æå¡æªç¥å¼å¸¸ï¼çæ§ç³»ç»æ æ³ç¡®å®å®ä¾çå½åç¶æï¼ case STATUS_UNKNOWN: statusName = "æå¡æªç¥å¼å¸¸"; break; // é»è®¤æ åµï¼æ²¡æå¹é çç¶æï¼ default: break; } String statusName = switch (status) { case STATUS_UP -> "æå¡ä¸çº¿"; // å®ä¾æåå¯å¨å¹¶å¯ä»¥æ£å¸¸å¤çè¯·æ± case STATUS_OFFLINE -> "æå¡ç¦»çº¿"; //å®ä¾è¢«æå¨æèªå¨å°ä»æå¡ä¸ç§»é¤ case STATUS_RESTRICTED -> "æå¡åé"; //表示å®ä¾å¨æäºæ¹é¢åéï¼å¯è½æ æ³å®å ¨æä¾æææå¡ case STATUS_OUT_OF_SERVICE -> "忢æå¡ç¶æ"; //表示å®ä¾å·²è¢«æ è®°ä¸ºåæ¢æä¾æå¡ï¼å¯è½æ¯è®¡åå ç»´æ¤ææµè¯ case STATUS_DOWN -> "æå¡ä¸çº¿"; //å®ä¾å å´©æºãé误æå ¶ä»åå 忢è¿è¡ case STATUS_UNKNOWN -> "æå¡æªç¥å¼å¸¸"; //çæ§ç³»ç»æ æ³ç¡®å®å®ä¾çå½åç¶æ default -> "æªç¥ç¶æ"; //没æå¹é çç¶æ }; log.info("Instance Status Change: ç¶æåç§°ã{}ã, 注ååç§°ã{}ã, å®ä¾IDã{}ã, ç¶æã{}ã, æå¡URLã{}ã", statusName, registName, instanceId, status, serviceUrl); NotifierEvent notifier = new NotifierEvent(); notifier.setRegistName(registName); notifier.setStatusName(statusName); notifier.setInstanceId(instanceId); notifier.setStatus(status); notifier.setServiceUrl(serviceUrl); SpringUtils.context().publishEvent(notifier); } }); } ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/InfoNotifier.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,34 @@ package org.dromara.monitor.admin.notifier; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.dromara.monitor.admin.event.NotifierEvent; import org.springframework.context.event.EventListener; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; /** * ä¿¡æ¯éç¥ * * @author AprilWind */ @RequiredArgsConstructor @Slf4j @Service public class InfoNotifier { /** * 弿¥å¤çéç¥äºä»¶çæ¹æ³ * <p> * è¯¥æ¹æ³ä¼å¤ç `NotifierEvent` äºä»¶ï¼æ§è¡éç¥ç¸å ³çæä½ï¼å¦åéé®ä»¶æçä¿¡ * * @param notifier äºä»¶å¯¹è±¡ï¼å å«äºéè¦éç¥ç详ç»ä¿¡æ¯ï¼å æ¬æ³¨ååç§°ãç¶æåç§°ãå®ä¾ IDãç¶æåæå¡ URL */ @Async @EventListener public void infoNotification(NotifierEvent notifier) { // å¨è¿éæ·»å å¤çéç¥äºä»¶çé»è¾ // ä¾å¦ï¼ä¾æ® notifier 对象çä¿¡æ¯åéé®ä»¶æçä¿¡éç¥ } }