Browse Source

add 增加 ruoyi-monitor 自定义事件通知

疯狂的狮子Li 4 years ago
parent
commit
eb67caf507

+ 5 - 0
ruoyi-visual/ruoyi-monitor/pom.xml

@@ -51,6 +51,11 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-security</artifactId>
         </dependency>
+
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
 		
     </dependencies>
 

+ 43 - 0
ruoyi-visual/ruoyi-monitor/src/main/java/com/ruoyi/modules/monitor/notifier/CustomNotifier.java

@@ -0,0 +1,43 @@
+package com.ruoyi.modules.monitor.notifier;
+
+import de.codecentric.boot.admin.server.domain.entities.Instance;
+import de.codecentric.boot.admin.server.domain.entities.InstanceRepository;
+import de.codecentric.boot.admin.server.domain.events.InstanceEvent;
+import de.codecentric.boot.admin.server.domain.events.InstanceStatusChangedEvent;
+import de.codecentric.boot.admin.server.domain.values.InstanceId;
+import de.codecentric.boot.admin.server.notify.AbstractEventNotifier;
+import io.micrometer.core.lang.NonNullApi;
+import lombok.NonNull;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+import reactor.core.publisher.Mono;
+
+/**
+ * 自定义事件通知处理
+ *
+ * @author Lion Li
+ */
+@Slf4j
+@Component
+public class CustomNotifier extends AbstractEventNotifier {
+
+    protected CustomNotifier(InstanceRepository repository) {
+        super(repository);
+    }
+
+    @Override
+    @SuppressWarnings("all")
+    protected Mono<Void> doNotify(InstanceEvent event, Instance instance) {
+        return Mono.fromRunnable(() -> {
+            // 实例状态改变事件
+            if (event instanceof InstanceStatusChangedEvent) {
+                String registName = instance.getRegistration().getName();
+                String instanceId = event.getInstance().getValue();
+                String status = ((InstanceStatusChangedEvent) event).getStatusInfo().getStatus();
+                log.info("Instance Status Change: [{}],[{}],[{}]", registName, instanceId, status);
+            }
+
+        });
+    }
+
+}