服务器管理添加标签功能。

优化mtr探测结果存储。
This commit is contained in:
gaoyutao
2025-11-25 18:18:51 +08:00
parent a0b0b57110
commit afbf1eead0
24 changed files with 265 additions and 548 deletions
@@ -93,27 +93,32 @@ public class MessageHandler {
List<RmMtrProbeResult> rmMtrProbeResultList = new ArrayList<>();
List<AllMtrClient> allMtrClientList = new ArrayList<>();
for (MtrResultVo mtrResultVo : mtrResultVoList) {
if(mtrResultVo.getFinalLossPercent() != -1.0){
// 时间戳转换
long timestamp = mtrResultVo.getTimestamp();
long millis = timestamp * 1000;
Date createTime = new Date(millis / 1000 * 1000); // 去除毫秒
RmMtrProbeResult rmMtrProbeResult = new RmMtrProbeResult();
rmMtrProbeResult.setCreateTime(createTime);
rmMtrProbeResult.setClientId(mtrResultVo.getClientId());
rmMtrProbeResult.setMtrClientId(mtrClientId);
rmMtrProbeResult.setPublicIp(mtrResultVo.getTargetIp());
rmMtrProbeResult.setPacketLossRate(new BigDecimal(mtrResultVo.getFinalLossPercent()));
rmMtrProbeResultList.add(rmMtrProbeResult);
AllMtrClient allMtrClient = new AllMtrClient();
BeanUtils.copyProperties(rmMtrProbeResult, allMtrClient);
allMtrClientList.add(allMtrClient);
// 时间戳转换
long timestamp = mtrResultVo.getTimestamp();
long millis = timestamp * 1000;
Date createTime = new Date(millis / 1000 * 1000); // 去除毫秒
RmMtrProbeResult rmMtrProbeResult = new RmMtrProbeResult();
rmMtrProbeResult.setCreateTime(createTime);
rmMtrProbeResult.setClientId(mtrResultVo.getClientId());
rmMtrProbeResult.setMtrClientId(mtrClientId);
rmMtrProbeResult.setPublicIp(mtrResultVo.getTargetIp());
rmMtrProbeResult.setPacketLossRate(new BigDecimal(mtrResultVo.getFinalLossPercent()));
rmMtrProbeResultList.add(rmMtrProbeResult);
AllMtrClient allMtrClient = new AllMtrClient();
BeanUtils.copyProperties(rmMtrProbeResult, allMtrClient);
if(mtrResultVo.getFinalLossPercent() == -1.0){
allMtrClient.setFailFlag(1);
}else{
log.debug("探测失败,失败原因:{}", mtrResultVo.getErrorMsg());
allMtrClient.setFailFlag(0);
}
allMtrClientList.add(allMtrClient);
}
RmMtrProbeResult insertData = new RmMtrProbeResult();
insertData.setList(rmMtrProbeResultList);
if(rmMtrProbeResultList.isEmpty()){
log.warn("探测失败,原因可能为mtr命令没安装");
return;
}
// 结果批量入库
rmMtrProbeResultService.batchInsertRmMtrProbeResult(insertData);
// 记录下发策略的clientId