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; 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,9 +739,11 @@ private Boolean IsEnableGuide(String cameraId) { boolean enabled = false; ArdCameras ardCameras = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId); if(ardCameras!=null) { if (ardCameras.getCamAlarmGuideEnable().equals(1)) { enabled = true; } } return enabled; } 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) { 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" + 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 #异步线程池配置 ThreadPoolTask: corePoolSize: 20 maxPoolSize: 40 keepAliveSeconds: 300 queueCapacity: 50