serviços de Micro: integração da Primavera Bota admin - pregos de alerta

I. Introdução

  No trabalho, na verdade, um monte de pessoas estão muito preocupados com a mensagem, muitas vezes algumas horas para ver uma mensagem. Então, precisamos enviar uma notificação de mensagem instantânea para o usuário. Com pregos e com mais e mais empresas, em seguida, enviar uma mensagem para o prego também é uma boa escolha!

Em segundo lugar, os shows de código

1, primeiro configure o nosso unhas bot:

 2, a Microservice-monitor-server -> DingDingMessageUtil.java

empacotar com.microservice.minitor.notifier; 

importação com.alibaba.fastjson.JSONObject; 

importação java.io.InputStream;
importação java.io.OutputStream;
importação java.net.HttpURLConnection;
importação java.net.URL; 

público  classe DingDingMessageUtil {
     pública  estática Cordas access_token = "钉钉token" ;
    público  estático  vazio (String msg) sendTextMessage {
         try { 
            Mensagem mensagem = nova mensagem (); 
            message.setMsgtype ( "texto" );
            message.setText ( novo MessageInfo (msg)); 
            URL url = new URL ( "https://oapi.dingtalk.com/robot/send?access_token=" + access_token);
            // 建立http连接 
            HttpURLConnection conn = (HttpURLConnection) url.openConnection (); 
            conn.setDoOutput ( verdadeiro ); 
            conn.setDoInput ( verdadeiro ); 
            conn.setUseCaches ( falso ); 
            conn.setRequestMethod ( "post" ); 
            conn.setRequestProperty ( "Charset", "UTF-8"  );
            conn.setRequestProperty ( "Content-Type", "aplicação / Json; charset = UTF-8" ); 
            conn.connect (); 
            OutputStream fora = conn.getOutputStream (); 
            Corda TextMessage = JSONObject.toJSONString (mensagem);
            byte [] Dados = textMessage.getBytes (); 
            out.write (dados); 
            out.flush (); 
            out.close (); 
            InputStream em = conn.getInputStream ();
            byte [] = dados1 novo  byte [in.available ()]; 
            in.read (dados 1);
            System.out.println ( new String (dados1)); 
        }prendedor (exceção e) { 
            e.printStackTrace (); 
        } 
    } 
} 
Classe mensagem {
     privada msgtype String;
    privado texto MessageInfo;
    pública de Cordas getMsgtype () {
         return msgtype; 
    } 
    Pública  vazio setMsgtype (msgtype String) {
         este .msgtype = msgtype; 
    } 
    Pública MessageInfo getText () {
         return texto; 
    } 
    Pública  .text =vazio setText (text MessageInfo) {
         este texto; 
    } 
} 
Class MessageInfo {
     private conteúdo String;
    pública MessageInfo (conteúdo String) {
         este .content = conteúdo; 
    } 
    Pública getContent String () {
         return conteúdo; 
    } 
    Pública  vazio setContent (conteúdo String) {
         este .content = conteúdo; 
    } 
}

 2, a Microservice-monitor-server -> DingDingNotifier.java

Pacote com.microservice.minitor.notifier; 

importação java.util.HashMap;
importação java.util.Map; 

importação com.alibaba.fastjson.JSONObject;
importação org.springframework.context.expression.MapAccessor;
importação org.springframework.expression.Expression;
importação org.springframework.expression.ParserContext;
importação org.springframework.expression.spel.standard.SpelExpressionParser;
importação org.springframework.expression.spel.support.StandardEvaluationContext;
importação org.springframework.http.HttpEntity;
importação org.springframework.http.HttpHeaders;
importaçõesorg.springframework.http.MediaType;
importação org.springframework.web.client.RestTemplate; 

importação de.codecentric.boot.admin.server.domain.entities.Instance;
importação de.codecentric.boot.admin.server.domain.entities.InstanceRepository;
importação de.codecentric.boot.admin.server.domain.events.InstanceEvent;
importação de.codecentric.boot.admin.server.notify.AbstractStatusChangeNotifier;
importação reactor.core.publisher.Mono; 


público  classe DingDingNotifier estende AbstractStatusChangeNotifier { 

    pública DingDingNotifier (repositório InstanceRepository) {
         super (repositório);
    }
    @Override 
    protegido Mono <Vazio> doNotify (evento InstanceEvent, instância Instância) { 
        Cadeia serviceName = instance.getRegistration () getName (.); 
        Corda ServiceURL = instance.getRegistration () getServiceUrl ().; 
        Estado corda = instance.getStatusInfo () getStatus ().; 
        Mapa <String, Object> detalhes = instance.getStatusInfo () getDetails (.); 
        StringBuilder str = novo StringBuilder (); 
        str.append ( "监控报警: 【" + serviceName + "】" ); 
        str.append ( "【服务地址】" +ServiceURL); 
        str.append ( "【状态】" + status); 
        str.append ( "【详情】" + JSONObject.toJSONString (detalhes));
        retorno Mono.fromRunnable (() -> { 
            DingDingMessageUtil.sendTextMessage (str.toString ()); 
        }); 
    } 
}

 3, a Microservice-monitor-server -> MinitorServerApplication.java

empacotar com.microservice.minitor; 

importação com.microservice.minitor.notifier.DingDingNotifier;
importação de.codecentric.boot.admin.server.config.EnableAdminServer;
importação de.codecentric.boot.admin.server.domain.entities.InstanceRepository;
importação org.springframework.boot.SpringApplication;
importação org.springframework.boot.autoconfigure.SpringBootApplication;
importação org.springframework.context.annotation.Bean; 

@SpringBootApplication 
@EnableAdminServer 
pública  classe MinitorServerApplication { 

    @Bean 
    públicaDingDingNotifier dingDingNotifier (InstanceRepository repositório) {
         retornar  novo DingDingNotifier (repositório); 
    } 

    Público  estáticos  vazios principais (String [] args) { 
        SpringApplication.run (. MinitorServerApplication classe , args); 
    } 
}

 

 Em terceiro lugar, execute o teste

 Projeto começar:

 PC:

 

telefone:

 

 

Acho que você gosta

Origin www.cnblogs.com/yansg/p/12589675.html
Recomendado
Clasificación