Pārlūkot izejas kodu

:sparkles: 添加新特性。服务状态变化通知

冷冷 6 gadi atpakaļ
vecāks
revīzija
839fe51fc2

+ 37 - 0
pigx-visual/pigx-monitor/src/main/java/com/pig4cloud/pigx/monitor/support/StatusChangeNotifier.java

@@ -0,0 +1,37 @@
+package com.pig4cloud.pigx.monitor.support;
+
+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.notify.AbstractEventNotifier;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+import reactor.core.publisher.Mono;
+
+/**
+ * @author lengleng
+ * @date 2019-01-23
+ * <p>
+ * 服务状态变化通知
+ */
+@Slf4j
+@Component
+public class StatusChangeNotifier extends AbstractEventNotifier {
+	protected StatusChangeNotifier(InstanceRepository repository) {
+		super(repository);
+	}
+
+	@Override
+	protected Mono<Void> doNotify(InstanceEvent event, Instance instance) {
+		return Mono.fromRunnable(() -> {
+			if (event instanceof InstanceStatusChangedEvent) {
+				log.error("Instance {} ({}) is {}", instance.getRegistration().getName(), event.getInstance(),
+						((InstanceStatusChangedEvent) event).getStatusInfo().getStatus());
+			} else {
+				log.error("Instance {} ({}) {}", instance.getRegistration().getName(), event.getInstance(),
+						event.getType());
+			}
+		});
+	}
+}

+ 1 - 1
pom.xml

@@ -43,7 +43,7 @@
 
 	<properties>
 		<spring-boot.version>2.1.2.RELEASE</spring-boot.version>
-		<spring-cloud.version>Greenwich.RC2</spring-cloud.version>
+		<spring-cloud.version>Greenwich.RELEASE</spring-cloud.version>
 		<spring-platform.version>Cairo-SR6</spring-platform.version>
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 		<maven.compiler.source>1.8</maven.compiler.source>