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);
        }
    }
  • 相关阅读:
    CMS前世今生
    叫练手把手教你读JVM之GC信息
    原来我还有网络天赋
    最简单的JVM内存结构图
    图解CyclicBarrier运动员接力赛
    图解定时任务线程池
    并发队列:ArrayBlockingQueue实际运用场景和原理
    ReentrantReadWriteLock读写锁简单原理案例证明
    JavaScript中的Function类型浅析
    JS数组整理
  • 原文地址:https://www.cnblogs.com/dongma/p/14727370.html
Copyright © 2011-2022 走看看