From a4568a528ec3b7dfd978bf9cd862e55b89b72071 Mon Sep 17 00:00:00 2001 From: qiaoqinzheng Date: Tue, 9 Jan 2024 14:36:32 +0800 Subject: [PATCH] =?UTF-8?q?alarm=E6=A8=A1=E5=9D=97=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=A2=9E=E5=8A=A0=E5=BC=95=E5=85=A5armd-anal?= =?UTF-8?q?ysis-=E5=AF=B9=E5=BA=94=E7=9A=84yaml=E6=96=87=E4=BB=B6=20Docker?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E8=8E=B7=E5=8F=96=E8=AE=BE=E5=A4=87=E7=9A=84?= =?UTF-8?q?=E6=9C=80=E5=A4=A7=E6=A0=B8=E5=BF=83=E6=95=B0=E9=97=AE=E9=A2=98?= =?UTF-8?q?=EF=BC=8C=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=96=B0=E7=9A=84=E9=85=8D=E7=BD=AE=E5=AD=97=E6=AE=B5maximum?= =?UTF-8?q?=20=E4=BA=BA=E5=B7=A5=E4=BA=A4=E4=BA=92=EF=BC=8Cweb=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E5=BC=95=E7=94=A8C++=E7=AE=97=E6=B3=95=E5=BA=93?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=E4=BF=AE=E6=94=B9=E5=8A=A0=E8=BD=BD=E6=96=B9?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../properties/MaximumPoolSizeProperties.java | 14 ++++++++++++++ .../modules/redisStream/RedisStreamConfig.java | 7 ++++++- .../org/jeecg/DataProvisionEfficiencyManager.java | 5 ++++- .../java/org/jeecg/DataReceivingStatusManager.java | 5 ++++- .../org/jeecg/common/CalculateStationData.java | 5 ++++- .../impl/GardsSampleDataWebServiceImpl.java | 1 + .../src/main/resources/application.yml | 3 ++- .../jeecg/JeecgSpectrumAnalysisApplication.java | 5 ++++- 8 files changed, 39 insertions(+), 6 deletions(-) create mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/MaximumPoolSizeProperties.java diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/MaximumPoolSizeProperties.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/MaximumPoolSizeProperties.java new file mode 100644 index 00000000..81b10e7b --- /dev/null +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/properties/MaximumPoolSizeProperties.java @@ -0,0 +1,14 @@ +package org.jeecg.common.properties; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Data +@Component +@ConfigurationProperties(prefix = "maximum") +public class MaximumPoolSizeProperties { + + private Integer station; + +} diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/redisStream/RedisStreamConfig.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/redisStream/RedisStreamConfig.java index a559dbe6..51ae5e50 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/redisStream/RedisStreamConfig.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/redisStream/RedisStreamConfig.java @@ -4,8 +4,10 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import org.jeecg.common.constant.RedisConstant; import org.jeecg.common.exception.StreamErrorHandler; +import org.jeecg.common.properties.MaximumPoolSizeProperties; import org.jeecg.common.util.RedisStreamUtil; import org.jeecg.modules.base.dto.Info; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; @@ -46,6 +48,9 @@ public class RedisStreamConfig { @Resource private RedisStreamUtil redisStreamUtil; + @Autowired + private MaximumPoolSizeProperties maximumPoolSizeProperties; + @Bean(initMethod = "start", destroyMethod = "stop") public StreamMessageListenerContainer> alarmStream() { /* 创建Stream和消费组 */ @@ -53,7 +58,7 @@ public class RedisStreamConfig { // 原子整数,多线程环境下对整数的原子性操作 AtomicInteger index = new AtomicInteger(1); // 返回当前系统可用的处理器数量 - Integer processors = Runtime.getRuntime().availableProcessors(); + Integer processors = maximumPoolSizeProperties.getStation();//Runtime.getRuntime().availableProcessors(); /* corePoolSize:线程池中核心线程的数量,即线程池中保持的最小线程数 maximumPoolSize:线程池中允许的最大线程数 diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/DataProvisionEfficiencyManager.java b/jeecg-module-station-operation/src/main/java/org/jeecg/DataProvisionEfficiencyManager.java index 1a4bb92f..3af394fb 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/DataProvisionEfficiencyManager.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/DataProvisionEfficiencyManager.java @@ -3,6 +3,7 @@ package org.jeecg; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.CalculateStationData; +import org.jeecg.common.properties.MaximumPoolSizeProperties; import org.jeecg.common.util.RedisUtil; import org.jeecg.modules.base.entity.configuration.GardsStations; import org.jeecg.modules.entity.data.RateParam; @@ -26,6 +27,8 @@ public class DataProvisionEfficiencyManager { private final CalculateStationData calCulateStationData; + private final MaximumPoolSizeProperties maximumPoolSizeProperties; + /** * 开始 */ @@ -44,7 +47,7 @@ public class DataProvisionEfficiencyManager { public void init(){ //获取机器可用核心数 - int systemCores = Runtime.getRuntime().availableProcessors(); + int systemCores = maximumPoolSizeProperties.getStation();//Runtime.getRuntime().availableProcessors(); //初始化线程池 ThreadFactory threadFactory = new CustomizableThreadFactory("provision-efficiency-"); poolExecutor = new ThreadPoolExecutor(systemCores-1,systemCores,5, TimeUnit.SECONDS, new LinkedBlockingQueue<>(),threadFactory); diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/DataReceivingStatusManager.java b/jeecg-module-station-operation/src/main/java/org/jeecg/DataReceivingStatusManager.java index 74d684b7..50760a4a 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/DataReceivingStatusManager.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/DataReceivingStatusManager.java @@ -7,6 +7,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.CacheName; import org.jeecg.common.config.mqtoken.UserTokenContext; +import org.jeecg.common.properties.MaximumPoolSizeProperties; import org.jeecg.common.util.DateUtils; import org.jeecg.common.util.RedisUtil; import org.jeecg.modules.base.entity.original.GardsMetData; @@ -47,6 +48,8 @@ public class DataReceivingStatusManager { private final StationSohDataMapper stationSohDataMapper; + private final MaximumPoolSizeProperties maximumPoolSizeProperties; + public void start() { ReceivingStatusThreadManager receivingStatusManager = new ReceivingStatusThreadManager(); receivingStatusManager.init(); @@ -62,7 +65,7 @@ public class DataReceivingStatusManager { public void init(){ //获取机器可用核心数 - int systemCores = Runtime.getRuntime().availableProcessors(); + int systemCores = maximumPoolSizeProperties.getStation();//Runtime.getRuntime().availableProcessors(); //初始化线程池 ThreadFactory threadFactory = new CustomizableThreadFactory("undeal-file-parsing-"); poolExecutor = new ThreadPoolExecutor(systemCores-1,systemCores,5, TimeUnit.SECONDS, new LinkedBlockingQueue<>(),threadFactory); diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/common/CalculateStationData.java b/jeecg-module-station-operation/src/main/java/org/jeecg/common/CalculateStationData.java index 42561b89..4ed0a2d3 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/common/CalculateStationData.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/common/CalculateStationData.java @@ -1,6 +1,7 @@ package org.jeecg.common; import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.properties.MaximumPoolSizeProperties; import org.jeecg.common.properties.ParameterProperties; import org.jeecg.common.util.RedisUtil; import org.jeecg.modules.entity.data.*; @@ -25,6 +26,8 @@ public class CalculateStationData { @Autowired private ParameterProperties parameterProperties; @Autowired + private MaximumPoolSizeProperties maximumPoolSizeProperties; + @Autowired private RedisUtil redisUtil; /** @@ -837,7 +840,7 @@ public class CalculateStationData { // 如果线程数不等于0 if (threadNum != 0){ //获取机器可用核心数 - int maximumPoolSize = Runtime.getRuntime().availableProcessors(); + int maximumPoolSize = maximumPoolSizeProperties.getStation();//Runtime.getRuntime().availableProcessors(); //初始化线程池 ThreadFactory threadFactory = new ThreadFactory() { @Override diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataWebServiceImpl.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataWebServiceImpl.java index e263f0f7..30a22aa7 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataWebServiceImpl.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataWebServiceImpl.java @@ -147,6 +147,7 @@ public class GardsSampleDataWebServiceImpl extends ServiceImpl