zoukankan      html  css  js  c++  java
  • 监听服务是否存在

    1,依赖

      <dependency>
                <groupId>de.codecentric</groupId>
                <artifactId>spring-boot-admin-starter-server</artifactId>
                <version>2.2.3</version>
            </dependency>

    2,实现AbstractStatusChangeNotifier

    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.AbstractStatusChangeNotifier;
    import reactor.core.publisher.Mono;
    
    public class DingdingNotifier extends AbstractStatusChangeNotifier {
        public DingdingNotifier(InstanceRepository repository) {
            super(repository);
        }
    
        @Override
        protected boolean shouldNotify(InstanceEvent event, Instance instance) {
            if (event instanceof InstanceStatusChangedEvent) {
                return true;
            }
            return false;
        }
    
        @Override
        protected Mono<Void> doNotify(InstanceEvent event, Instance instance) {
            return Mono.fromRunnable(() -> {
    //                    createMessage(event, instance);
                    }
    
            );
        }
    }

    3,将监听注入ioc容器

    import cn.jiguang.anti.deception.monitor.notifier.DingTalkNotifier;
    import de.codecentric.boot.admin.server.config.AdminServerHazelcastAutoConfiguration;
    import de.codecentric.boot.admin.server.config.AdminServerNotifierAutoConfiguration;
    import de.codecentric.boot.admin.server.domain.entities.InstanceRepository;
    import org.springframework.boot.autoconfigure.AutoConfigureBefore;
    import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
    import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    /**
     * @author yintp
     */
    @Configuration
    @ConditionalOnProperty(
            prefix = "spring.boot.admin.notify.dingtalk",
            name = {"webhook-token"}
    )
    @AutoConfigureBefore({AdminServerHazelcastAutoConfiguration.NotifierTriggerConfiguration.class, AdminServerNotifierAutoConfiguration.CompositeNotifierConfiguration.class})
    public class DingTalkNotifierConfiguration {
        @Bean
        @ConditionalOnMissingBean
        @ConfigurationProperties(prefix = "spring.boot.admin.notify.dingtalk")
        public DingTalkNotifier dingTalkNotifier(InstanceRepository repository) {
            return new DingTalkNotifier(repository);
        }
    }
  • 相关阅读:
    2016年 IT 趋势大预测!
    怎样创建合适的告警处理流程?
    如何解决 Java 安全问题?
    程序员:如何成为一个全栈的工程师?
    安全防护:你是否正在追逐一个不可能实现的目标?
    如何使用 Python 创建一个 NBA 得分图?
    如何对 Android 库进行依赖管理?
    减少 WAF 漏报的 8 种方法 !
    第69节:Java中数据库的多表操作
    第69节:Java中数据库的多表操作
  • 原文地址:https://www.cnblogs.com/dongma/p/14727370.html
Copyright © 2011-2022 走看看