Commit 905a0578 authored by chenjian's avatar chenjian

内存检测、CPU检测功能实现

prod开发环境创建
内部服务器环境配置搭建
parent 73c77a52
import cn.hutool.http.HttpUtil; //import cn.hutool.http.HttpUtil;
import cn.hutool.http.Method; //import cn.hutool.http.Method;
import com.alibaba.fastjson.JSON; //import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; //import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; //import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; //import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ebo.module.vo.SysMESComplaintFormVo; //import com.ebo.module.vo.SysMESComplaintFormVo;
import com.ebo.system.entity.SysOrgEntity; //import com.ebo.system.entity.SysOrgEntity;
import com.ebo.system.entity.SysPostEntity; //import com.ebo.system.entity.SysPostEntity;
import com.ebo.system.entity.SysUserEntity; //import com.ebo.system.entity.SysUserEntity;
import com.ebo.system.entity.SysUserPostEntity; //import com.ebo.system.entity.SysUserPostEntity;
import com.ebo.system.service.SysOrgService; //import com.ebo.system.service.SysOrgService;
import com.ebo.system.service.SysPostService; //import com.ebo.system.service.SysPostService;
import com.ebo.system.service.SysUserPostService; //import com.ebo.system.service.SysUserPostService;
import com.ebo.system.service.SysUserService; //import com.ebo.system.service.SysUserService;
import jakarta.annotation.Resource; //import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j; //import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; //import org.apache.commons.lang3.StringUtils;
import org.junit.Test; //import org.junit.Test;
import org.springframework.security.crypto.password.PasswordEncoder; //import org.springframework.security.crypto.password.PasswordEncoder;
//
import java.util.ArrayList; //import java.util.ArrayList;
import java.util.HashMap; //import java.util.HashMap;
import java.util.List; //import java.util.List;
import java.util.Map; //import java.util.Map;
//
@Slf4j //@Slf4j
public class test { //public class test {
//
@Resource // @Resource
private SysUserService sysUserService; // private SysUserService sysUserService;
@Resource // @Resource
private SysOrgService sysOrgService; // private SysOrgService sysOrgService;
@Resource // @Resource
private PasswordEncoder passwordEncoder; // private PasswordEncoder passwordEncoder;
@Resource // @Resource
private SysPostService sysPostService; // private SysPostService sysPostService;
@Resource // @Resource
private SysUserPostService sysUserPostService; // private SysUserPostService sysUserPostService;
private static String appId = "2753387689773494150"; // private static String appId = "2753387689773494150";
//
private static String secret = "zdrhodfkm2itmwy5ns00ndrllwixzjktodmxndiwywi1zgey"; // private static String secret = "zdrhodfkm2itmwy5ns00ndrllwixzjktodmxndiwywi1zgey";
//
private static String tokenUrl = "https://gzehr.greatpower.net:7051/GCYDHR/restApi/token/genToken"; // private static String tokenUrl = "https://gzehr.greatpower.net:7051/GCYDHR/restApi/token/genToken";
//
private String urls="https://gzehr.greatpower.net:7051/GCYDHR/sys/webreq/sysWebReqDef/eai.do?"; // private String urls="https://gzehr.greatpower.net:7051/GCYDHR/sys/webreq/sysWebReqDef/eai.do?";
//
private String eaiKey = "eaiKey=apiHQYGDA"; // private String eaiKey = "eaiKey=apiHQYGDA";
//
//
@Test // @Test
public void getTekesss(){ // public void getTekesss(){
String url = "http://10.0.100.20:8080/mes/third/thirdPartyAPI!hnMachineRepairdata.action"; // String url = "http://10.0.100.20:8080/mes/third/thirdPartyAPI!hnMachineRepairdata.action";
/*JSONObject headers = new JSONObject(); // /*JSONObject headers = new JSONObject();
headers.put("DATE_MODIFIED_FROM","2023-07-12"); // headers.put("DATE_MODIFIED_FROM","2023-07-12");
headers.put("DATE_MODIFIED_TO","2023-07-13");*/ // headers.put("DATE_MODIFIED_TO","2023-07-13");*/
String responseBody = HttpUtil.get(url); // String responseBody = HttpUtil.get(url);
System.out.println("11111"+responseBody); // System.out.println("11111"+responseBody);
//
List<SysMESComplaintFormVo> list = new ArrayList<>(); // List<SysMESComplaintFormVo> list = new ArrayList<>();
JSONObject resultData = JSON.parseObject(responseBody); // JSONObject resultData = JSON.parseObject(responseBody);
if(resultData.getBoolean("status")){ // if(resultData.getBoolean("status")){
JSONArray resultArray = resultData.getJSONArray("result"); // JSONArray resultArray = resultData.getJSONArray("result");
for (int i = 0; i < resultArray.size(); i++) { // for (int i = 0; i < resultArray.size(); i++) {
JSONObject result = resultArray.getJSONObject(i); // JSONObject result = resultArray.getJSONObject(i);
SysMESComplaintFormVo sysMESComplaintFormVo = JSON.parseObject(result.toJSONString(),SysMESComplaintFormVo.class); // SysMESComplaintFormVo sysMESComplaintFormVo = JSON.parseObject(result.toJSONString(),SysMESComplaintFormVo.class);
list.add(sysMESComplaintFormVo); // list.add(sysMESComplaintFormVo);
} // }
} // }
} // }
//
//
//
//
@Test // @Test
public void getTeke(){ // public void getTeke(){
String url = "http://192.168.18.37:18080/els/openApi/getToken?key="+"7d45fa41"+"&secret="+"77777c3cafda450cacfc515229d0a902"; // String url = "http://192.168.18.37:18080/els/openApi/getToken?key="+"7d45fa41"+"&secret="+"77777c3cafda450cacfc515229d0a902";
//
String result = HttpUtil.get(url); // String result = HttpUtil.get(url);
log.info("aaa"+result); // log.info("aaa"+result);
String token = ""; // String token = "";
JSONObject jsonObject = JSONObject.parseObject(result); // JSONObject jsonObject = JSONObject.parseObject(result);
if(jsonObject.getInteger("code") == 200){ // if(jsonObject.getInteger("code") == 200){
JSONObject resultData = jsonObject.getJSONObject("result"); // JSONObject resultData = jsonObject.getJSONObject("result");
token = resultData.getString("token"); // token = resultData.getString("token");
log.info("token::::"+token); // log.info("token::::"+token);
} // }
//
JSONObject headers = new JSONObject(); // JSONObject headers = new JSONObject();
headers.put("bus_account","520027"); // headers.put("bus_account","520027");
headers.put("interface_code","JK20221228000005"); // headers.put("interface_code","JK20221228000005");
//
//
JSONObject body = new JSONObject(); // JSONObject body = new JSONObject();
JSONObject data = new JSONObject(); // JSONObject data = new JSONObject();
JSONArray headList = new JSONArray(); // JSONArray headList = new JSONArray();
JSONObject heads = new JSONObject(); // JSONObject heads = new JSONObject();
heads.put("materialNumber","FH24080100005"); // heads.put("materialNumber","FH24080100005");
heads.put("materialName","极耳切刀"); // heads.put("materialName","极耳切刀");
// heads.put("cateCode","A10007"); // // heads.put("cateCode","A10007");
heads.put("cateName","消耗品"); // heads.put("cateName","消耗品");
//heads.put("materialSpec","cessee"); // //heads.put("materialSpec","cessee");
heads.put("purchaseType",2); // heads.put("purchaseType",2);
heads.put("orgCode","001"); // heads.put("orgCode","001");
heads.put("deleted",0); // heads.put("deleted",0);
heads.put("baseUnit","桶"); // heads.put("baseUnit","桶");
heads.put("sourceType","JWL"); // heads.put("sourceType","JWL");
/* heads.put("fbk1","2"); // /* heads.put("fbk1","2");
heads.put("fbk2","A"); // heads.put("fbk2","A");
heads.put("remark","测试"); // heads.put("remark","测试");
//
heads.put("materialDesc","111zz");*/ // heads.put("materialDesc","111zz");*/
headList.add(heads); // headList.add(heads);
data.put("headList",headList); // data.put("headList",headList);
//
body.put("data",data); // body.put("data",data);
body.put("busAccount","520027"); // body.put("busAccount","520027");
body.put("simpleFlag","0"); // body.put("simpleFlag","0");
body.put("interfaceCode","createMaterialHead"); // body.put("interfaceCode","createMaterialHead");
headers.put("body",body); // headers.put("body",body);
Map<String,String> header = new HashMap<>(); // Map<String,String> header = new HashMap<>();
header.put("token",token); // header.put("token",token);
String headersUrl = "http://192.168.18.37:18080/els/openApi/invoke"; // String headersUrl = "http://192.168.18.37:18080/els/openApi/invoke";
log.info("headersUrl::::"+headersUrl); // log.info("headersUrl::::"+headersUrl);
log.info("headers::::"+headers); // log.info("headers::::"+headers);
String responseBody = HttpUtil.createRequest(Method.POST, headersUrl).addHeaders(header).body(JSON.toJSONString(headers)).execute().body(); // String responseBody = HttpUtil.createRequest(Method.POST, headersUrl).addHeaders(header).body(JSON.toJSONString(headers)).execute().body();
log.info("responseBody::::"+responseBody); // log.info("responseBody::::"+responseBody);
} // }
//
//
@Test // @Test
public void sds() { // public void sds() {
Map<String,Object> params = new HashMap<>(); // Map<String,Object> params = new HashMap<>();
//
params.put("appId",appId); // params.put("appId",appId);
params.put("secret",secret); // params.put("secret",secret);
String result = HttpUtil.post(tokenUrl,params); // String result = HttpUtil.post(tokenUrl,params);
//
JSONObject lt = JSONObject.parseObject(result); // JSONObject lt = JSONObject.parseObject(result);
if(lt.getString("data") != null){ // if(lt.getString("data") != null){
Map<String,Object> paramsSysWebReqDef = new HashMap<>(); // Map<String,Object> paramsSysWebReqDef = new HashMap<>();
paramsSysWebReqDef.put("empId",""); // paramsSysWebReqDef.put("empId","");
paramsSysWebReqDef.put("empName",""); // paramsSysWebReqDef.put("empName","");
paramsSysWebReqDef.put("depart",""); // paramsSysWebReqDef.put("depart","");
paramsSysWebReqDef.put("company",""); // paramsSysWebReqDef.put("company","");
paramsSysWebReqDef.put("superior",""); // paramsSysWebReqDef.put("superior","");
paramsSysWebReqDef.put("PageNum",1); // paramsSysWebReqDef.put("PageNum",1);
paramsSysWebReqDef.put("PageSize",5); // paramsSysWebReqDef.put("PageSize",5);
String hrUrl = urls+eaiKey+"&token="+lt.getString("data"); // String hrUrl = urls+eaiKey+"&token="+lt.getString("data");
//
String responseBody = HttpUtil.createRequest(Method.POST, hrUrl).body(JSON.toJSONString(paramsSysWebReqDef)).execute().body(); // String responseBody = HttpUtil.createRequest(Method.POST, hrUrl).body(JSON.toJSONString(paramsSysWebReqDef)).execute().body();
log.info("responseBody:{}", JSON.toJSONString(responseBody)); // log.info("responseBody:{}", JSON.toJSONString(responseBody));
JSONObject request = JSONObject.parseObject(responseBody); // JSONObject request = JSONObject.parseObject(responseBody);
SysUserEntity sysUserEntity = null; // SysUserEntity sysUserEntity = null;
if(request.getBoolean("success")){ // if(request.getBoolean("success")){
JSONArray datas = request.getJSONArray("data"); // JSONArray datas = request.getJSONArray("data");
if(datas != null){ // if(datas != null){
for (int i = 0; i < datas.size(); i++) { // for (int i = 0; i < datas.size(); i++) {
JSONObject jsonObject = datas.getJSONObject(i); // JSONObject jsonObject = datas.getJSONObject(i);
sysUserEntity = sysUserService.getOne(new LambdaQueryWrapper<SysUserEntity>() // sysUserEntity = sysUserService.getOne(new LambdaQueryWrapper<SysUserEntity>()
.eq(SysUserEntity::getUsername,jsonObject.getString("F_GH")) // .eq(SysUserEntity::getUsername,jsonObject.getString("F_GH"))
); // );
if(sysUserEntity != null){ // if(sysUserEntity != null){
return; // return;
} // }
String F_BM1_NAME = jsonObject.getString("F_BM1_NAME"); // String F_BM1_NAME = jsonObject.getString("F_BM1_NAME");
SysOrgEntity sysOrgEntity = null; // SysOrgEntity sysOrgEntity = null;
String fbmPid1 = "";//一级id // String fbmPid1 = "";//一级id
String fbmPid2 = "";//二级id // String fbmPid2 = "";//二级id
String fbmPid3 = "";//三级id // String fbmPid3 = "";//三级id
String fbmPid4 = "";//四级id // String fbmPid4 = "";//四级id
if(StringUtils.isNotEmpty(F_BM1_NAME)){ // if(StringUtils.isNotEmpty(F_BM1_NAME)){
sysOrgEntity = sysOrgService.getOne(new LambdaQueryWrapper<SysOrgEntity>() // sysOrgEntity = sysOrgService.getOne(new LambdaQueryWrapper<SysOrgEntity>()
.eq(SysOrgEntity::getName,F_BM1_NAME)); // .eq(SysOrgEntity::getName,F_BM1_NAME));
if(sysOrgEntity == null){ // if(sysOrgEntity == null){
sysOrgEntity = new SysOrgEntity(); // sysOrgEntity = new SysOrgEntity();
sysOrgEntity.setName(F_BM1_NAME); // sysOrgEntity.setName(F_BM1_NAME);
sysOrgEntity.setCreator("HR"); // sysOrgEntity.setCreator("HR");
sysOrgEntity.setTenantCode("A01"); // sysOrgEntity.setTenantCode("A01");
sysOrgEntity.setUpdater("HR"); // sysOrgEntity.setUpdater("HR");
sysOrgService.save(sysOrgEntity); // sysOrgService.save(sysOrgEntity);
} // }
fbmPid1 = sysOrgEntity.getId(); // fbmPid1 = sysOrgEntity.getId();
} // }
String F_BM2_NAME = jsonObject.getString("F_BM2_NAME"); // String F_BM2_NAME = jsonObject.getString("F_BM2_NAME");
if(StringUtils.isNotEmpty(F_BM2_NAME)){ // if(StringUtils.isNotEmpty(F_BM2_NAME)){
sysOrgEntity = sysOrgService.getOne(new LambdaQueryWrapper<SysOrgEntity>() // sysOrgEntity = sysOrgService.getOne(new LambdaQueryWrapper<SysOrgEntity>()
.eq(SysOrgEntity::getName,F_BM2_NAME)); // .eq(SysOrgEntity::getName,F_BM2_NAME));
if(sysOrgEntity == null){ // if(sysOrgEntity == null){
sysOrgEntity = new SysOrgEntity(); // sysOrgEntity = new SysOrgEntity();
sysOrgEntity.setPid(fbmPid1); // sysOrgEntity.setPid(fbmPid1);
sysOrgEntity.setName(F_BM2_NAME); // sysOrgEntity.setName(F_BM2_NAME);
sysOrgEntity.setCreator("HR"); // sysOrgEntity.setCreator("HR");
sysOrgEntity.setTenantCode("A01"); // sysOrgEntity.setTenantCode("A01");
sysOrgEntity.setUpdater("HR"); // sysOrgEntity.setUpdater("HR");
sysOrgService.save(sysOrgEntity); // sysOrgService.save(sysOrgEntity);
} // }
fbmPid2 = sysOrgEntity.getId(); // fbmPid2 = sysOrgEntity.getId();
} // }
String F_BM3_NAME = jsonObject.getString("F_BM3_NAME"); // String F_BM3_NAME = jsonObject.getString("F_BM3_NAME");
if(StringUtils.isNotEmpty(F_BM3_NAME)){ // if(StringUtils.isNotEmpty(F_BM3_NAME)){
sysOrgEntity = sysOrgService.getOne(new LambdaQueryWrapper<SysOrgEntity>() // sysOrgEntity = sysOrgService.getOne(new LambdaQueryWrapper<SysOrgEntity>()
.eq(SysOrgEntity::getName,F_BM3_NAME)); // .eq(SysOrgEntity::getName,F_BM3_NAME));
if(sysOrgEntity == null){ // if(sysOrgEntity == null){
sysOrgEntity = new SysOrgEntity(); // sysOrgEntity = new SysOrgEntity();
sysOrgEntity.setPid(fbmPid2); // sysOrgEntity.setPid(fbmPid2);
sysOrgEntity.setName(F_BM3_NAME); // sysOrgEntity.setName(F_BM3_NAME);
sysOrgEntity.setCreator("HR"); // sysOrgEntity.setCreator("HR");
sysOrgEntity.setTenantCode("A01"); // sysOrgEntity.setTenantCode("A01");
sysOrgEntity.setUpdater("HR"); // sysOrgEntity.setUpdater("HR");
sysOrgService.save(sysOrgEntity); // sysOrgService.save(sysOrgEntity);
} // }
fbmPid3 = sysOrgEntity.getId(); // fbmPid3 = sysOrgEntity.getId();
} // }
//
String F_BM4_NAME = jsonObject.getString("F_BM4_NAME"); // String F_BM4_NAME = jsonObject.getString("F_BM4_NAME");
if(StringUtils.isNotEmpty(F_BM4_NAME)){ // if(StringUtils.isNotEmpty(F_BM4_NAME)){
sysOrgEntity = sysOrgService.getOne(new LambdaQueryWrapper<SysOrgEntity>() // sysOrgEntity = sysOrgService.getOne(new LambdaQueryWrapper<SysOrgEntity>()
.eq(SysOrgEntity::getName,F_BM4_NAME)); // .eq(SysOrgEntity::getName,F_BM4_NAME));
if(sysOrgEntity == null){ // if(sysOrgEntity == null){
sysOrgEntity = new SysOrgEntity(); // sysOrgEntity = new SysOrgEntity();
sysOrgEntity.setPid(fbmPid3); // sysOrgEntity.setPid(fbmPid3);
sysOrgEntity.setName(F_BM4_NAME); // sysOrgEntity.setName(F_BM4_NAME);
sysOrgEntity.setCreator("HR"); // sysOrgEntity.setCreator("HR");
sysOrgEntity.setTenantCode("A01"); // sysOrgEntity.setTenantCode("A01");
sysOrgEntity.setUpdater("HR"); // sysOrgEntity.setUpdater("HR");
sysOrgService.save(sysOrgEntity); // sysOrgService.save(sysOrgEntity);
} // }
fbmPid4 = sysOrgEntity.getId(); // fbmPid4 = sysOrgEntity.getId();
} // }
//
sysUserEntity = new SysUserEntity(); // sysUserEntity = new SysUserEntity();
sysUserEntity.setCreator("HR"); // sysUserEntity.setCreator("HR");
sysUserEntity.setUpdater("HR"); // sysUserEntity.setUpdater("HR");
sysUserEntity.setTenantCode("A01"); // sysUserEntity.setTenantCode("A01");
sysUserEntity.setMobile(jsonObject.getString("F_SJHM")); // sysUserEntity.setMobile(jsonObject.getString("F_SJHM"));
sysUserEntity.setUsername(jsonObject.getString("F_GH")); // sysUserEntity.setUsername(jsonObject.getString("F_GH"));
sysUserEntity.setRealName(jsonObject.getString("F_XM")); // sysUserEntity.setRealName(jsonObject.getString("F_XM"));
if(jsonObject.getString("F_XB_NAME").equals("男")){ // if(jsonObject.getString("F_XB_NAME").equals("男")){
sysUserEntity.setGender(0); // sysUserEntity.setGender(0);
}else { // }else {
sysUserEntity.setGender(1); // sysUserEntity.setGender(1);
} // }
sysUserEntity.setStatus(1); // sysUserEntity.setStatus(1);
sysUserEntity.setPassword(passwordEncoder.encode("abcd1234")); // sysUserEntity.setPassword(passwordEncoder.encode("abcd1234"));
if(StringUtils.isNotEmpty(fbmPid4)){ // if(StringUtils.isNotEmpty(fbmPid4)){
sysUserEntity.setOrgId(fbmPid4); // sysUserEntity.setOrgId(fbmPid4);
}else { // }else {
if(StringUtils.isNotEmpty(fbmPid3)){ // if(StringUtils.isNotEmpty(fbmPid3)){
sysUserEntity.setOrgId(fbmPid3); // sysUserEntity.setOrgId(fbmPid3);
}else { // }else {
if(StringUtils.isNotEmpty(fbmPid2)){ // if(StringUtils.isNotEmpty(fbmPid2)){
sysUserEntity.setOrgId(fbmPid2); // sysUserEntity.setOrgId(fbmPid2);
}else { // }else {
sysUserEntity.setOrgId(fbmPid1); // sysUserEntity.setOrgId(fbmPid1);
} // }
} // }
} // }
sysUserService.save(sysUserEntity); // sysUserService.save(sysUserEntity);
//
if(StringUtils.isNotEmpty(jsonObject.getString("F_GWMC_NAME"))){ // if(StringUtils.isNotEmpty(jsonObject.getString("F_GWMC_NAME"))){
SysPostEntity sysPostEntity = null; // SysPostEntity sysPostEntity = null;
sysPostEntity = sysPostService.getOne(new LambdaQueryWrapper<SysPostEntity>() // sysPostEntity = sysPostService.getOne(new LambdaQueryWrapper<SysPostEntity>()
.eq(SysPostEntity::getPostName,jsonObject.getString("F_GWMC_NAME"))); // .eq(SysPostEntity::getPostName,jsonObject.getString("F_GWMC_NAME")));
if(sysPostEntity == null){ // if(sysPostEntity == null){
sysPostEntity = new SysPostEntity(); // sysPostEntity = new SysPostEntity();
sysPostEntity.setPostCode(jsonObject.getString("F_GWMC")); // sysPostEntity.setPostCode(jsonObject.getString("F_GWMC"));
sysPostEntity.setPostName(jsonObject.getString("F_GWMC_NAME")); // sysPostEntity.setPostName(jsonObject.getString("F_GWMC_NAME"));
sysPostEntity.setTenantCode("A01"); // sysPostEntity.setTenantCode("A01");
sysPostEntity.setStatus(1); // sysPostEntity.setStatus(1);
sysPostEntity.setCreator("HR"); // sysPostEntity.setCreator("HR");
sysPostEntity.setUpdater("HR"); // sysPostEntity.setUpdater("HR");
sysPostService.save(sysPostEntity); // sysPostService.save(sysPostEntity);
} // }
SysUserPostEntity sysUserPostEntity = new SysUserPostEntity(); // SysUserPostEntity sysUserPostEntity = new SysUserPostEntity();
sysUserPostEntity.setPostId(sysPostEntity.getId()); // sysUserPostEntity.setPostId(sysPostEntity.getId());
sysUserPostEntity.setUserId(sysUserEntity.getId()); // sysUserPostEntity.setUserId(sysUserEntity.getId());
sysUserPostEntity.setTenantCode("A01"); // sysUserPostEntity.setTenantCode("A01");
sysUserPostEntity.setCreator("HR"); // sysUserPostEntity.setCreator("HR");
sysUserPostEntity.setUpdater("HR"); // sysUserPostEntity.setUpdater("HR");
sysUserPostService.save(sysUserPostEntity); // sysUserPostService.save(sysUserPostEntity);
} // }
//
} // }
} // }
} // }
} // }
//
} // }
} //}
package com.ebo.module.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Data
@Component
@ConfigurationProperties(prefix = "xxljob.executor.qqemail")
public class QQEmailConfig {
private String toEmail;
private String smtpHost;
private int smtpPort;
private String smtpUser;
private String smtpPass;
}
\ No newline at end of file
package com.ebo.module.task;
import com.ebo.module.utils.GetAccessToken;
import com.ebo.module.utils.SendMessageEmail;
import com.google.gson.Gson;
import com.xxl.job.core.handler.IJobHandler;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.util.Map;
@Component
@Slf4j
public class CpuMonitorHandler extends IJobHandler {
@Autowired
private SendMessageEmail sendMessageEmail;
private final static String apiUrl = "http://localhost:8659/monitor/server/cpu";
@XxlJob("cpuMonitorJob")
@Override
public void execute() throws Exception {
log.info("Cpu Monitor Job Start");
String accessToken = GetAccessToken.getAccessToken();
if (accessToken == null) {
log.error("获取令牌失败");
return;
}
URIBuilder uriBuilder = new URIBuilder(apiUrl);
uriBuilder.addParameter("access_token", accessToken);
String urlWithParams = uriBuilder.build().toString();
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet(urlWithParams);
CloseableHttpResponse response = null;
try {
response = httpClient.execute(httpGet);
HttpEntity entity = response.getEntity();
if (entity != null) {
String result = EntityUtils.toString(entity);
Map<String, Object> responseresult = new Gson().fromJson(result, Map.class);
Map<String, Object> data = (Map<String, Object>) responseresult.get("data");
double free = Double.parseDouble(data.get("free").toString());
double threshold = 80; // 设置阈值
if ((100-free) > threshold) {
sendMessageEmail.sendAlert("Cpu内存占用过高警告", "目前内存占用为: " + (100-free) + "%");
} else {
log.info("Cpu内存占用正常: " + (100-free) + "%");
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (response != null) {
response.close();
}
httpClient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
log.info("Cpu Monitor Job End");
}
}
\ No newline at end of file
package com.ebo.module.task;
import com.ebo.module.utils.GetAccessToken;
import com.ebo.module.utils.SendMessageEmail;
import com.google.gson.Gson;
import com.xxl.job.core.handler.IJobHandler;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.util.Map;
@Component
@Slf4j
public class JvmMonitorHandler extends IJobHandler {
@Autowired
private SendMessageEmail sendMessageEmail;
private final static String apiUrl = "http://localhost:8659/monitor/server/jvm";
@XxlJob("jvmMonitorJob")
@Override
public void execute() throws Exception {
log.info("Jvm Monitor Job Start");
String accessToken = GetAccessToken.getAccessToken();
if (accessToken == null) {
log.error("获取令牌失败");
return;
}
// 构建带有查询参数的 URL
URIBuilder uriBuilder = new URIBuilder(apiUrl);
uriBuilder.addParameter("access_token", accessToken);
String urlWithParams = uriBuilder.build().toString();
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet(urlWithParams);
CloseableHttpResponse response = null;
try {
response = httpClient.execute(httpGet);
HttpEntity entity = response.getEntity();
if (entity != null) {
String result = EntityUtils.toString(entity);
// 解析响应数据
Map<String, Object> responseresult = new Gson().fromJson(result, Map.class);
Map<String, Object> data = (Map<String, Object>) responseresult.get("data");
log.info("data为{}",data);
double max = Double.parseDouble(data.get("max").toString());
double total = Double.parseDouble(data.get("total").toString());
double jvmUsage = total/max;
double threshold = 90; // 设置阈值
if (jvmUsage > threshold) {
// 发送警报
sendMessageEmail.sendAlert("内存占用过高警告", "目前内存占用为: " + jvmUsage + "%");
} else {
log.info("内存占用正常: " + jvmUsage + "%");
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (response != null) {
response.close();
}
httpClient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
log.info("Jvm Monitor Job End");
}
}
\ No newline at end of file
package com.ebo.module.task;
import com.ebo.module.utils.GetAccessToken;
import com.ebo.module.utils.SendMessageEmail;
import com.google.gson.Gson;
import com.xxl.job.core.handler.IJobHandler;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.util.Map;
@Component
@Slf4j
public class MemoryMonitorHandler extends IJobHandler {
@Autowired
private SendMessageEmail sendMessageEmail;
@XxlJob("memoryMonitorJob")
@Override
public void execute() throws Exception {
log.info("Memory Monitor Job Start");
String accessToken = GetAccessToken.getAccessToken();
if (accessToken == null) {
log.error("获取令牌失败");
return;
}
String apiUrl = "http://localhost:8659/monitor/server/mem";
// 构建带有查询参数的 URL
URIBuilder uriBuilder = new URIBuilder(apiUrl);
uriBuilder.addParameter("access_token", accessToken);
String urlWithParams = uriBuilder.build().toString();
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet(urlWithParams);
CloseableHttpResponse response = null;
try {
response = httpClient.execute(httpGet);
HttpEntity entity = response.getEntity();
if (entity != null) {
String result = EntityUtils.toString(entity);
// 解析响应数据
Map<String, Object> responseresult = new Gson().fromJson(result, Map.class);
Map<String, Object> data = (Map<String, Object>) responseresult.get("data");
// 检查内存使用率
double usage = Double.parseDouble(data.get("usage").toString());
double threshold = 80.0; // 设置阈值
if (usage > threshold) {
// 发送警报
sendMessageEmail.sendAlert("内存占用过高警告", "目前内存占用为: " + usage + "%");
} else {
log.info("内存占用正常: " + usage + "%");
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (response != null) {
response.close();
}
httpClient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
log.info("Memory Monitor Job End");
}
}
\ No newline at end of file
package com.ebo.module.utils;
import com.google.gson.Gson;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
import java.util.Map;
@Slf4j
public class GetAccessToken {
/**
* 以管理员身份跳过认证
* @return
*/
public static String getAccessToken() {
String authUrl = "http://localhost:8659/sys/auth/login";
String username = "guoxianhui";
String password = "guoxianhui2002";
String key = ""; // 如果有 key,填写对应的值
String captcha = ""; // 如果有 captcha,填写对应的值
HttpPost httpPost = new HttpPost(authUrl);
httpPost.setHeader("Content-Type", "application/json");
String json = String.format("{\"username\":\"%s\",\"password\":\"%s\",\"key\":\"%s\",\"captcha\":\"%s\"}",
username, password, key, captcha);
try (CloseableHttpClient httpClient = HttpClients.createDefault();){
StringEntity entity = new StringEntity(json);
httpPost.setEntity(entity);
try (CloseableHttpResponse response = httpClient.execute(httpPost);){
HttpEntity responseEntity = response.getEntity();
if (responseEntity != null) {
String result = EntityUtils.toString(responseEntity);
log.info("Auth Response: " + result);
// 解析响应数据
Map<String, Object> responseMap = new Gson().fromJson(result, Map.class);
Map<String, Object> dataMap = (Map<String, Object>) responseMap.get("data");
return dataMap.get("access_token").toString();
}
}
} catch (IOException e) {
log.error("Failed to get access token", e);
}
return null;
}
}
package com.ebo.module.utils;
import com.ebo.module.config.QQEmailConfig;
import jakarta.mail.*;
import jakarta.mail.internet.InternetAddress;
import jakarta.mail.internet.MimeMessage;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.Properties;
@Slf4j
@Component
public class SendMessageEmail {
private final QQEmailConfig qqemailConfig;
@Autowired
public SendMessageEmail(QQEmailConfig qqemailConfig) {
this.qqemailConfig = qqemailConfig;
}
public void sendAlert(String subject, String message) {
// 发送邮件
Properties props = new Properties();
props.put("mail.smtp.host", qqemailConfig.getSmtpHost());
props.put("mail.smtp.port", qqemailConfig.getSmtpPort());
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
Session session = Session.getInstance(props, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(qqemailConfig.getSmtpUser(), qqemailConfig.getSmtpPass());
}
});
try {
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(qqemailConfig.getSmtpUser(), false));
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(qqemailConfig.getToEmail(), false));
msg.setSubject(subject);
msg.setText(message);
msg.setSentDate(new Date());
Transport.send(msg);
log.info("Alert sent successfully");
} catch (MessagingException e) {
log.info("Failed to send alert", e);
}
}
}
# 预发布环境
spring:
data:
redis:
database: 13
host: 10.18.18.51
port: 6379
password: 123456
timeout: 6000ms # 连接超时时长(毫秒)
datasource:
dynamic:
hikari: # Hikari 连接池全局配置
connection-timeout: 30000 # 等待连接池分配链接的最大时长(毫秒),超过这个时长还没有可用的连接则发生 SQLException,默认:30 秒
minimum-idle: 2 # 最小空闲连接数
maximum-pool-size: 10 # 最大连接数
idle-timeout: 600000 # 连接超时的最大时长(毫秒),超时则被释放(retired),默认:10 分钟
max-lifetime: 1800000 # 连接的生命时长(毫秒),超时而且没被使用则被释放(retired),默认: 30 分钟
connection-test-query: SELECT 1
primary: master
datasource:
master:
# MySQL8
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/itask?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
username: root
password: Mysql@cyunsing
oms:
# MySQL8
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/itask?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
username: root
password: Mysql@cyunsing
logging:
level:
org:
springframework:
jdbc:
core:
JdbcTemplate: DEBUG
xxl:
job:
enable: true #是否开始任务
admin:
## addresses: http://xxljob.sit.gdyibo.com.cn/xxl-job-admin #xxljob调度中心部署 例如:http://127.0.0.1:8080/xxl-job-admin
addresses: http://10.18.18.68:8080/xxl-job-admin
executor:
appname: orderpt #xxljob配置的执行器名称,
ip: #执行器IP,默认为空表示自动获取IP
port: 9501 #xxljob配置的端口号,默认为9999
logpath: /usr/local/java/ITask/logs #执行器运行日志文件存储磁盘路径
logretentiondays: 15 #调度中心日志表数据保存天数,过期日志自动清理;限制大于等于7时生效,否则, 如-1,关闭自动清理功能
accessToken: Ebo-Token #调度中心通讯TOKEN [选填]:非空时启用
execl:
# outFileTempPath: /Users/gxh/Documents/ybProject/fast-spms3/fast-spms-admin/oms-server/src/main/resources/execlOutTemp
outFileTempPath: /usr/local/java/ITask/execlOutTemp
mybatis:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
...@@ -4,7 +4,7 @@ spring: ...@@ -4,7 +4,7 @@ spring:
database: 13 database: 13
host: 127.0.0.1 host: 127.0.0.1
port: 6379 port: 6379
password: Yb#2021&yb password: 123456
timeout: 6000ms # 连接超时时长(毫秒) timeout: 6000ms # 连接超时时长(毫秒)
datasource: datasource:
dynamic: dynamic:
...@@ -20,15 +20,15 @@ spring: ...@@ -20,15 +20,15 @@ spring:
master: master:
# MySQL8 # MySQL8
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://119.23.144.105:3306/fast_order_pt_dev?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true url: jdbc:mysql://127.0.0.1:3306/itask?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
username: orderdev username: root
password: Orderdev@2099 password: Mysql@cyunsing
oms: oms:
# MySQL8 # MySQL8
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://119.23.144.105:3306/fast_order_pt_dev?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true url: jdbc:mysql://127.0.0.1:3306/itask?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
username: orderdev username: root
password: Orderdev@2099 password: Mysql@cyunsing
xxl: xxl:
job: job:
enable: false #是否开始任务 enable: false #是否开始任务
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment