From c3b04f92b4c196644a80a912a601b5c29194f71b Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: Sat, 05 Aug 2023 09:37:52 +0800
Subject: [PATCH] 增加线程池配置信息 修改雷达数据最近一次引导从redis获取
---
ard-work/src/main/java/com/ruoyi/alarm/config/AsyncConfiguration.java | 42 ++++++++-------------
ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java | 2
ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java | 21 ++++++----
ard-work/src/main/java/com/ruoyi/test/ReadAccessDatabase.java | 21 +++++-----
ruoyi-admin/src/main/resources/application-ard.yml | 11 ++++-
5 files changed, 50 insertions(+), 47 deletions(-)
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/config/AsyncConfiguration.java b/ard-work/src/main/java/com/ruoyi/alarm/config/AsyncConfiguration.java
index 4052c82..f3b8be4 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/config/AsyncConfiguration.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/config/AsyncConfiguration.java
@@ -1,11 +1,14 @@
package com.ruoyi.alarm.config;
+import com.google.errorprone.annotations.Var;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.Executor;
+import java.util.concurrent.ThreadPoolExecutor;
/**
* @ClassName: AsyncConfiguration
@@ -17,44 +20,31 @@
@Configuration
@EnableAsync(proxyTargetClass = true)
public class AsyncConfiguration {
- @Bean("loginExecutor")
- public Executor executor(){
- ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
- //配置核心线程数
- executor.setCorePoolSize(15);
- //配置最大线程数
- executor.setMaxPoolSize(30);
- //配置队列大小
- executor.setQueueCapacity(1000);
- //线程的名称前缀
- executor.setThreadNamePrefix("loginExecutor-");
- //线程活跃时间(秒)
- //executor.setKeepAliveSeconds(60);
- //等待所有任务结束后再关闭线程池
- executor.setWaitForTasksToCompleteOnShutdown(true);
- //设置拒绝策略
- //executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
- //执行初始化
- executor.initialize();
- return executor;
- }
+ @Value("${ThreadPoolTask.corePoolSize}")
+ Integer corePoolSize;
+ @Value("${ThreadPoolTask.maxPoolSize}")
+ Integer maxPoolSize;
+ @Value("${ThreadPoolTask.keepAliveSeconds}")
+ Integer keepAliveSeconds;
+ @Value("${ThreadPoolTask.queueCapacity}")
+ Integer queueCapacity;
@Bean("alarmExecutor")
public Executor alarmExecutor(){
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
//配置核心线程数
- executor.setCorePoolSize(15);
+ executor.setCorePoolSize(corePoolSize);
//配置最大线程数
- executor.setMaxPoolSize(30);
+ executor.setMaxPoolSize(maxPoolSize);
//配置队列大小
- executor.setQueueCapacity(1000);
+ executor.setQueueCapacity(queueCapacity);
//线程的名称前缀
executor.setThreadNamePrefix("alarmExecutor-");
//线程活跃时间(秒)
- //executor.setKeepAliveSeconds(60);
+ executor.setKeepAliveSeconds(keepAliveSeconds);
//等待所有任务结束后再关闭线程池
executor.setWaitForTasksToCompleteOnShutdown(true);
//设置拒绝策略
- //executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
+ executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
//执行初始化
executor.initialize();
return executor;
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java b/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java
index 074021f..6d761a0 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/global/service/impl/GlobalAlarmServiceImpl.java
@@ -544,14 +544,12 @@
//判断当前报警点5分钟内是否已引导
ardAlarmRadar.setGuideFlag(1);
- ArdAlarmRadar AlarmRadar = ardAlarmRadarMapper.getArdAlarmRadarWithGuide(ardAlarmRadar);
- // 结束时间
- long etime = System.currentTimeMillis();
- // 计算执行时间
- log.info("查询API执行时长:"+(etime-stime)+"毫秒");
+ // ArdAlarmRadar AlarmRadar = ardAlarmRadarMapper.getArdAlarmRadarWithGuide(ardAlarmRadar);
+ ArdAlarmRadar AlarmRadar = redisCache.getCacheObject("global_alarm:guideNew");//从redis中取出最新引导的报警数据
if (StringUtils.isNull(AlarmRadar)) {
//5分钟内未引导直接入库
ardAlarmRadarMapper.insertArdAlarmRadar(ardAlarmRadar);
+ redisCache.setCacheObject("global_alarm:guideNew",ardAlarmRadar);//引导数据写入redis
//获取雷达所在塔上的大光电
String cameraIdWithTower = ardAlarmRadarMapper.getCameraByRadar(radarAlarmData.getRadarId());
if (StringUtils.isNotNull(cameraIdWithTower) && StringUtils.isNotEmpty(cameraIdWithTower)) {
@@ -563,7 +561,7 @@
ArdAlarmpointsWell ardAlarmpointsWell = ardAlarmpointsWellMapper.selectArdAlarmpointsWellByWellId(alarmpointName);
if (StringUtils.isNotNull(ardAlarmpointsWell) && StringUtils.isNotEmpty(ardAlarmpointsWell.getCameraId())) {
String cameraId = ardAlarmpointsWell.getCameraId();
- if (cameraIdWithTower.equals(cameraId)) {
+ if (cameraId.equals(cameraIdWithTower)) {
return;
}
log.info("获取到报警点关联的光电:" + cameraId);
@@ -578,6 +576,7 @@
if (count >= 3) {
ardAlarmRadar.setGuideFlag(1);
ardAlarmRadarMapper.insertArdAlarmRadar(ardAlarmRadar);
+ redisCache.setCacheObject("global_alarm:guideNew",ardAlarmRadar);//引导数据写入redis
//获取雷达所在塔上的大光电
String cameraIdWithTower = ardAlarmRadarMapper.getCameraByRadar(radarAlarmData.getRadarId());
if (StringUtils.isNotNull(cameraIdWithTower) && StringUtils.isNotEmpty(cameraIdWithTower)) {
@@ -601,6 +600,10 @@
ardAlarmRadarMapper.insertArdAlarmRadar(ardAlarmRadar);
}
}
+ // 结束时间
+ long etime = System.currentTimeMillis();
+ // 计算执行时间
+ log.info("查询API执行时长:"+(etime-stime)+"毫秒");
}
//endregion
@@ -736,8 +739,10 @@
private Boolean IsEnableGuide(String cameraId) {
boolean enabled = false;
ArdCameras ardCameras = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
- if (ardCameras.getCamAlarmGuideEnable().equals(1)) {
- enabled = true;
+ if(ardCameras!=null) {
+ if (ardCameras.getCamAlarmGuideEnable().equals(1)) {
+ enabled = true;
+ }
}
return enabled;
}
diff --git a/ard-work/src/main/java/com/ruoyi/test/ReadAccessDatabase.java b/ard-work/src/main/java/com/ruoyi/test/ReadAccessDatabase.java
index e146beb..4f6fa2e 100644
--- a/ard-work/src/main/java/com/ruoyi/test/ReadAccessDatabase.java
+++ b/ard-work/src/main/java/com/ruoyi/test/ReadAccessDatabase.java
@@ -15,17 +15,18 @@
public class ReadAccessDatabase {
public static void main(String[] args) {
- // 多个数据库文件路径
- String[] dbPaths = {
- "D:\\mdb\\道路中心线.mdb",
- "D:\\mdb\\防风林-灌木.mdb",
- // 添加更多的数据库文件路径
- };
- // 遍历每个数据库文件
- for (String dbPath : dbPaths) {
- readDataFromAccessDatabase(dbPath);
- }
+// // 多个数据库文件路径
+// String[] dbPaths = {
+// "D:\\mdb\\道路中心线.mdb",
+// "D:\\mdb\\防风林-灌木.mdb",
+// // 添加更多的数据库文件路径
+// };
+//
+// // 遍历每个数据库文件
+// for (String dbPath : dbPaths) {
+// readDataFromAccessDatabase(dbPath);
+// }
}
public static void readDataFromAccessDatabase(String dbPath) {
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java
index 957176f..1dd95b9 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java
@@ -19,7 +19,7 @@
{
public static void main(String[] args)
{
- // System.setProperty("spring.devtools.restart.enabled", "false");
+ System.setProperty("spring.devtools.restart.enabled", "false");//关闭热部署
SpringApplication.run(RuoYiApplication.class, args);
System.out.println("(♥◠‿◠)ノ゙ 安瑞达4.0平台启动成功 ლ(´ڡ`ლ)゙ \n" +
" ___ ___ \n" +
diff --git a/ruoyi-admin/src/main/resources/application-ard.yml b/ruoyi-admin/src/main/resources/application-ard.yml
index a1e898d..1c15525 100644
--- a/ruoyi-admin/src/main/resources/application-ard.yml
+++ b/ruoyi-admin/src/main/resources/application-ard.yml
@@ -37,7 +37,14 @@
clientId: m3
username: admin
password: xzx12345
- topic: apponekey
+ topic: apponekey,radar
timeout: 100
keepalive: 60
- enabled: true
\ No newline at end of file
+ enabled: true
+
+#异步线程池配置
+ThreadPoolTask:
+ corePoolSize: 20
+ maxPoolSize: 40
+ keepAliveSeconds: 300
+ queueCapacity: 50
\ No newline at end of file
--
Gitblit v1.9.3