xxl-job集成钉钉告警
// An highlighted block
@Component
public class DingJobAlarm implements JobAlarm {
private final RestTemplate restTemplate = new RestTemplate();
@Value("${alarm.dingWebhook}")
private String dingWebhook;
@Override
public boolean doAlarm(XxlJobInfo info, XxlJobLog jobLog) {
System.out.println("ding ---------------------");
try {
HashMap<String, Object> map = new HashMap<>(2);
map.put("msgtype", "text");
HashMap<String, String> cmap = new HashMap<>(1);
StringBuilder content = new StringBuilder("任务失败:");
content.append("{任务名称:").append(info.getJobDesc());
content.append(",执行器名称:").append(info.getExecutorHandler());
content.append(",执行器ip:").append(jobLog.getExecutorAddress());
content.append(",任务参数:").append(jobLog.getExecutorParam());
String msg = jobLog.getTriggerMsg();
if(null != msg && !"".equals(msg.trim())){
msg = msg.substring(msg.lastIndexOf("</span><br>")+11,msg.lastIndexOf("<br><br>"));
}
content.append(msg);
content.append(",执行任务时间:").append(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())).append("}");
cmap.put("content",content.toString());
map.put("text", cmap);
restTemplate.postForEntity(dingWebhook, map, Object.class);
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
}
参考文献:
https://www.xuxueli.com/xxl-job/#5.16%20%E4%BB%BB%E5%8A%A1%E5%A4%B1%E8%B4%A5%E5%91%8A%E8%AD%A6