Merge remote-tracking branch 'origin/master'

This commit is contained in:
hzj
2025-05-14 10:16:00 +08:00
5 changed files with 27 additions and 35 deletions

View File

@@ -9,6 +9,7 @@ import com.njcn.algorithm.pojo.bo.BaseParam;
import com.njcn.algorithm.pojo.bo.CalculatedParam; import com.njcn.algorithm.pojo.bo.CalculatedParam;
import com.njcn.algorithm.pojo.bo.HourParam; import com.njcn.algorithm.pojo.bo.HourParam;
import com.njcn.algorithm.pojo.enums.PrepareResponseEnum; import com.njcn.algorithm.pojo.enums.PrepareResponseEnum;
import com.njcn.algorithm.utils.MemorySizeUtil;
import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.exception.BusinessException;
@@ -91,20 +92,7 @@ public class ExecutionCenter extends BaseController {
* @date 2023/11/7 14:44 * @date 2023/11/7 14:44
*/ */
private void dealResponse(CalculatedParam calculatedParam, LiteflowResponse liteflowResponse, String methodDescribe) { private void dealResponse(CalculatedParam calculatedParam, LiteflowResponse liteflowResponse, String methodDescribe) {
Runtime runtime = Runtime.getRuntime(); MemorySizeUtil.getNowMemory();
// 获取 JVM 最大可用内存(以字节为单位)
long maxMemory = runtime.maxMemory();
// 获取 JVM 当前已分配的内存(以字节为单位)
long totalMemory = runtime.totalMemory();
// 获取 JVM 当前空闲内存(以字节为单位)
long freeMemory = runtime.freeMemory();
// 计算已使用的内存
long usedMemory = totalMemory - freeMemory;
System.out.println("最大可用内存: " + maxMemory / (1024 * 1024) + " MB");
System.out.println("当前已分配的内存: " + totalMemory / (1024 * 1024) + " MB");
System.out.println("当前空闲内存: " + freeMemory / (1024 * 1024) + " MB");
System.out.println("已使用的内存: " + usedMemory / (1024 * 1024) + " MB");
if (liteflowResponse.isSuccess()) { if (liteflowResponse.isSuccess()) {
// 获取执行步骤列表 // 获取执行步骤列表
long allTime = 0; long allTime = 0;

View File

@@ -71,21 +71,7 @@ public class DataCleanServiceImpl implements IDataCleanService {
@Override @Override
public void dataVCleanHandler(CalculatedParam calculatedParam) { public void dataVCleanHandler(CalculatedParam calculatedParam) {
Runtime runtime = Runtime.getRuntime(); MemorySizeUtil.getNowMemory();
// 获取 JVM 最大可用内存(以字节为单位)
long maxMemory = runtime.maxMemory();
// 获取 JVM 当前已分配的内存(以字节为单位)
long totalMemory = runtime.totalMemory();
// 获取 JVM 当前空闲内存(以字节为单位)
long freeMemory = runtime.freeMemory();
// 计算已使用的内存
long usedMemory = totalMemory - freeMemory;
System.out.println("最大可用内存: " + maxMemory / (1024 * 1024) + " MB");
System.out.println("当前已分配的内存: " + totalMemory / (1024 * 1024) + " MB");
System.out.println("当前空闲内存: " + freeMemory / (1024 * 1024) + " MB");
System.out.println("已使用的内存: " + usedMemory / (1024 * 1024) + " MB");
System.out.println("第一次分析结束-----------------------------------------");
logger.info("{},dataV表异常数据算法执行=====》", LocalDateTime.now()); logger.info("{},dataV表异常数据算法执行=====》", LocalDateTime.now());

View File

@@ -9,6 +9,7 @@ import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.njcn.algorithm.pojo.bo.CalculatedParam; import com.njcn.algorithm.pojo.bo.CalculatedParam;
import com.njcn.algorithm.service.line.IDataCrossingService; import com.njcn.algorithm.service.line.IDataCrossingService;
import com.njcn.algorithm.utils.MemorySizeUtil;
import com.njcn.common.utils.PubUtils; import com.njcn.common.utils.PubUtils;
import com.njcn.dataProcess.api.*; import com.njcn.dataProcess.api.*;
import com.njcn.dataProcess.constant.PhaseType; import com.njcn.dataProcess.constant.PhaseType;
@@ -80,6 +81,7 @@ public class IDataCrossingServiceImpl implements IDataCrossingService {
@Override @Override
public void limitRateHandler(CalculatedParam calculatedParam) { public void limitRateHandler(CalculatedParam calculatedParam) {
MemorySizeUtil.getNowMemory();
logger.info("{},limitRate表转r_stat_limit_rate_d算法开始=====》", LocalDateTime.now()); logger.info("{},limitRate表转r_stat_limit_rate_d算法开始=====》", LocalDateTime.now());
List<DataLimitDetailDto> result = new ArrayList<>(); List<DataLimitDetailDto> result = new ArrayList<>();
//远程接口获取分钟数据 //远程接口获取分钟数据
@@ -95,6 +97,7 @@ public class IDataCrossingServiceImpl implements IDataCrossingService {
//以100个监测点分片处理 //以100个监测点分片处理
List<List<String>> pendingIds = ListUtils.partition(lineIds, NUM); List<List<String>> pendingIds = ListUtils.partition(lineIds, NUM);
ArrayList<String> phase = ListUtil.toList(PhaseType.PHASE_A, PhaseType.PHASE_B, PhaseType.PHASE_C); ArrayList<String> phase = ListUtil.toList(PhaseType.PHASE_A, PhaseType.PHASE_B, PhaseType.PHASE_C);
MemorySizeUtil.getNowMemory();
pendingIds.forEach(list -> { pendingIds.forEach(list -> {
lineParam.setLineId(list); lineParam.setLineId(list);
//获取电压数据 //获取电压数据
@@ -107,7 +110,6 @@ public class IDataCrossingServiceImpl implements IDataCrossingService {
List<DataHarmDto> dataVInHarmList = dataInharmVFeignClient.getRawData(lineParam).getData(); List<DataHarmDto> dataVInHarmList = dataInharmVFeignClient.getRawData(lineParam).getData();
//电流数据 //电流数据
List<DataIDto> dataIList = dataIFeignClient.getRawData(lineParam).getData(); List<DataIDto> dataIList = dataIFeignClient.getRawData(lineParam).getData();
/** /**
* 功能描述:获取influxDB -> data_v -> * 功能描述:获取influxDB -> data_v ->
* 总计算次数(用data_v中phasic_type=A,value_type=avg,quality_flag=0来参与统计) * 总计算次数(用data_v中phasic_type=A,value_type=avg,quality_flag=0来参与统计)
@@ -122,7 +124,7 @@ public class IDataCrossingServiceImpl implements IDataCrossingService {
* 闪变总计算次数(用data_plt中phasic_type=A,quality_flag=0来参与统计) * 闪变总计算次数(用data_plt中phasic_type=A,quality_flag=0来参与统计)
*/ */
Map<String, List<DataPltDto>> flickerAllTime = dataFlickerAllTime.stream() Map<String, List<DataPltDto>> flickerAllTime = dataFlickerAllTime.stream()
.filter(x -> PhaseType.PHASE_A.equals(x.getValueType())) .filter(x -> PhaseType.PHASE_A.equals(x.getPhasicType()))
.collect(Collectors.groupingBy(DataPltDto::getLineId)); .collect(Collectors.groupingBy(DataPltDto::getLineId));
/** /**
@@ -218,7 +220,7 @@ public class IDataCrossingServiceImpl implements IDataCrossingService {
} }
} }
}); });
MemorySizeUtil.getNowMemory();
if (CollUtil.isNotEmpty(result)) { if (CollUtil.isNotEmpty(result)) {
//存储数据 //存储数据
List<DataLimitRateDto> dataLimitRate = result.stream().map(DataLimitDetailDto::getDataLimitRate).filter(x -> ObjectUtil.isNotNull(x)).collect(Collectors.toList()); List<DataLimitRateDto> dataLimitRate = result.stream().map(DataLimitDetailDto::getDataLimitRate).filter(x -> ObjectUtil.isNotNull(x)).collect(Collectors.toList());

View File

@@ -158,9 +158,6 @@ public class PollutionServiceImpl implements IPollutionService {
if (ObjectUtil.isNotNull(dto.getUnitId())) { if (ObjectUtil.isNotNull(dto.getUnitId())) {
lineParam.setLineId(Arrays.asList(dto.getUnitId())); lineParam.setLineId(Arrays.asList(dto.getUnitId()));
List<DataPollutionOrgD> data = dataPollutionFeignClient.getRawDataOrgD(lineParam).getData(); List<DataPollutionOrgD> data = dataPollutionFeignClient.getRawDataOrgD(lineParam).getData();
if (CollUtil.isNotEmpty(data)) {
System.out.println(data);
}
Map<String, List<DataPollutionOrgD>> pollutionMap = data.stream().collect(Collectors.groupingBy(DataPollutionOrgD::getPollutionType)); Map<String, List<DataPollutionOrgD>> pollutionMap = data.stream().collect(Collectors.groupingBy(DataPollutionOrgD::getPollutionType));
pollutionMap.forEach((key, value) -> { pollutionMap.forEach((key, value) -> {
DataPollutionOrgM orgD = new DataPollutionOrgM(); DataPollutionOrgM orgD = new DataPollutionOrgM();

View File

@@ -4,6 +4,7 @@ import org.apache.commons.lang.SerializationUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.lang.instrument.Instrumentation; import java.lang.instrument.Instrumentation;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
/** /**
@@ -19,4 +20,22 @@ public class MemorySizeUtil {
return (double)serialized.length/1024/1024; return (double)serialized.length/1024/1024;
} }
public static void getNowMemory(){
Runtime runtime = Runtime.getRuntime();
// 获取 JVM 最大可用内存(以字节为单位)
long maxMemory = runtime.maxMemory();
// 获取 JVM 当前已分配的内存(以字节为单位)
long totalMemory = runtime.totalMemory();
// 获取 JVM 当前空闲内存(以字节为单位)
long freeMemory = runtime.freeMemory();
// 计算已使用的内存
long usedMemory = totalMemory - freeMemory;
System.out.println("--------------------------华丽的分隔符--------------------------------------------------------------"+ LocalDateTime.now());
System.out.println("最大可用内存: " + maxMemory / (1024 * 1024) + " MB");
System.out.println("当前已分配的内存: " + totalMemory / (1024 * 1024) + " MB");
System.out.println("当前空闲内存: " + freeMemory / (1024 * 1024) + " MB");
System.out.println("已使用的内存: " + usedMemory / (1024 * 1024) + " MB");
}
} }