「报警推送java」报警推送到微信群
本篇文章给大家谈谈报警推送java,以及报警推送到微信群对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java 如何实现系统消息推送
- 2、XXL-JOB告警消息推送改造
- 3、用JAVA写了一个小程序,当出错的时候。主板报警。 但用JAVA如何控制主板报警,请大虾详细介绍
- 4、java nio如何设置tcp报文紧急推送
- 5、java疫苗管理系统有什么创新吗
java 如何实现系统消息推送
消息推送方式分为两种:短连接和长连接。也就是客户端与服务器之间的数据传输交互方式不同。
1、短连接又称为轮询,方式为pull。客户端定时向服务器发送请求,询问是否有数据,时间频次可以设置。这种的方式更适合web端使用,用在APP有很多弊端。
2、长连接方式为push,服务器主动向客户端发送数据。市面上移动端产品基本采用这种方式,但是ios和android系统有很大的区别。不论手机上安装了多少个APP,也只有一条长连接,消息最终由苹果服务器进行内置分发。即使用户关闭了APP,依然可以收到消息推送。
实现系统消息推送,就需要比较好的第三方软件就行辅助,极光就是一个不错的选择。极光JPush 是经过考验的大规模 App 推送平台,每天推送消息量级为数百亿条。JPush 提供可视化的 web 端控制台发送通知,统计分析推送效果。 JPush 全面支持 Android, iOS, Winphone 三大手机平台。
XXL-JOB告警消息推送改造
目前JOB的调度框架非常多,由于之前一直在用XXL-JOB这个轻量级的调度框架,所以这么多年也一直用,不过对于JOB调度来说,我们很多时候需要对JOB的执行情况进行监控,框架默认带了邮件的报警,不过由于使用习惯的问题,邮件报警不太习惯,所以这里改造为通过钉钉的机器人进行告警推送。
Step1、创建钉钉的群的机器人,这里就不截图了,这里选择的验证方式是签名验证(不同的方式改动会略有差异)
Step2、将相关配置写入到配置文件
找到xxl-job-admin的application.properties,在最下面增加配置:
```
dingding.accesstoken=你的钉钉机器人的token
dingding.key=机器人的SECkey,开头是“SEC”
dingding.url=
```
Step3、读取application.properties的配置
找到com.xxl.job.admin.core.conf.XxlJobAdminConfig文件,读取出刚才的配置
Step4、在JobAlarmer增加钉钉机器人告警的方法
```
/**
* job alarm 通过钉钉机器人推送job告警
*
* @param info
* @param jobLog
* @return
*/
public boolean DingRobotalarm(XxlJobInfo info, XxlJobLog jobLog) {
boolean result =false;
if (jobAlarmList!=null jobAlarmList.size()0) {
result =true; // success means all-success
for (JobAlarm alarm:jobAlarmList) {
boolean resultItem =false;
try {
DDMsg ddMsg=new DDMsg();
resultItem = ddMsg.PushRobotMsg(info, jobLog); //发送告警信息
}catch (Exception e) {
logger.error(e.getMessage(), e);
}
if (!resultItem) {
result =false;
}
}
}
return result;
}
```
Step5、增加DDMsg.java 类
```
package com.xxl.job.admin.core.alarm;
import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
import com.xxl.job.admin.core.model.XxlJobInfo;
import com.xxl.job.admin.core.model.XxlJobLog;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import com.xxl.job.admin.core.util.HttpRequest;
import org.apache.tomcat.util.codec.binary.Base64;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
/**
* @PROJECT xxl-job
* @ClassName DDMsg
* @Author 唐尘
* @date 2021/3/23
* @time 11:56
* @Description: TODO
* @return
*/
@Configuration
@Component
//@PropertySource({"classpath:application.properties"})
public class DDMsg {
private static Loggerlogger = LoggerFactory.getLogger(DDMsg.class);
public boolean PushRobotMsg(XxlJobInfo info, XxlJobLog jobLog)throws Exception {
String dingdingaccesstoken=XxlJobAdminConfig.getAdminConfig().getDingdingaccesstoken();
String url=XxlJobAdminConfig.getAdminConfig().getDingdingurl();
// 获取logid
String logid = String.valueOf(jobLog.getId());
// todo 根据id读取错误日志 ,这里后续再完善
Long timestamp = System.currentTimeMillis();
String signres =sign(timestamp);
String DingDingRobotUrl = url + dingdingaccesstoken +"timestamp=" + timestamp +"sign=" + signres;
String msgbody ="任务ID:" + jobLog.getJobId() +",任务描述:" + info.getJobDesc() +"执行出错,请及时处理!LogId:" + jobLog.getId() +",出错信息:" + jobLog.getHandleMsg();
String msg ="{\"msgtype\": \"text\",\"text\": {\"content\": \"" + msgbody +"\"}}";
logger.info(msgbody);
try {
HttpRequest.postBody(DingDingRobotUrl, msg);
return true;
}catch (Exception e){
return false;
}
}
public static Stringsign(Long timestamp)throws UnsupportedEncodingException, NoSuchAlgorithmException, InvalidKeyException {
String key=XxlJobAdminConfig.getAdminConfig().getDingdingkey();
String stringToSign = timestamp +"\n" + key;
Mac mac = Mac.getInstance("HmacSHA256");
mac.init(new SecretKeySpec(key.getBytes("UTF-8"), "HmacSHA256"));
byte[] signData = mac.doFinal(stringToSign.getBytes("UTF-8"));
String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)), "UTF-8");
return sign;
}
}
```
Step6、修改默认的钉钉的告警方法
找到类文件JobFailMonitorHelper.java,修改如下:
然后重新构建发布即可
用JAVA写了一个小程序,当出错的时候。主板报警。 但用JAVA如何控制主板报警,请大虾详细介绍
java适合做中间件,不适合你说的这种应用,用c或c++
形象点说,java是艘大货轮,比较笨重,只能在水上跑跑,而c则是核潜艇,水上水下都吃的开
java nio如何设置tcp报文紧急推送
在java中可以基于java.nio.channels中的Channel和Selector的相关类来实现TCP/IP+NIO方式的系统间通信。
用于系统间通信依靠SocketChannel和ServerSocketChannel,SocketChannel用于建立连接,监听事件及操作读写,ServerSocketChannel用于监听端口及监听连接事件,可通过Selector来获取是否有要处理的事件。
java疫苗管理系统有什么创新吗
Java疫苗管理系统不仅仅是一个普通的系统,它拥有众多先进创新的功能,以实现疫苗管理的智能化为目标。首先,它实现了基于图像处理技术的疫苗追溯系统,使得医院可以根据编号或者条形码的形式准确查询疫苗的产地、厂家、注射时期等信息,这个系统能够有效监控疫苗从生产到使用的全流程,为贯彻落实疫苗管理政策提供强有力支撑,将疫苗管理规范化;其次,Java疫苗管理系统还实现了数据分析功能,医院可以根据全国的疫苗使用情况进行数据比对,对疫苗使用的情况进行分析,从而更客观准确的统计分析出适宜本地的疫苗配置。此外,Java疫苗管理系统还实现了疫苗提醒和推送功能,可以根据用户的身份证号码进行排期提醒和信息推送,这样可以大大提高疫苗注射率。
关于报警推送java和报警推送到微信群的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。