Bläddra i källkod

四平大华确认更改线程池

majunqi 1 år sedan
förälder
incheckning
4980d8268b

+ 27 - 17
src/main/java/com/sooka/sponest/event/centereventteventcatalogue/controller/CentereventTEventcatalogueController.java

@@ -37,6 +37,8 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.collections4.MapUtils;
 import org.apache.commons.collections4.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
@@ -74,6 +76,12 @@ public class CentereventTEventcatalogueController extends BaseController {
     @Autowired
     @Autowired
     private ICentereventTDownloadsService centereventTDownloadsService;
     private ICentereventTDownloadsService centereventTDownloadsService;
 
 
+    @Autowired
+    @Qualifier("asyncTaskExecutor")
+    private ThreadPoolTaskExecutor asyncTaskExecutor;
+
+
+
     /**
     /**
      * 查询事件目录列表
      * 查询事件目录列表
      */
      */
@@ -290,8 +298,8 @@ public class CentereventTEventcatalogueController extends BaseController {
                     paramMap.put("busId", log.getId());
                     paramMap.put("busId", log.getId());
                     paramMap.put("token", RemoteApiUtil.getInstance().getToken());// 大华token
                     paramMap.put("token", RemoteApiUtil.getInstance().getToken());// 大华token
                     remoteDataService.updateAttach(paramMap);
                     remoteDataService.updateAttach(paramMap);
-                });
-                future.get();
+                },asyncTaskExecutor);
+               // future.get();
             }
             }
         } catch (Exception e) {
         } catch (Exception e) {
             logger.error(e.getMessage());
             logger.error(e.getMessage());
@@ -319,6 +327,23 @@ public class CentereventTEventcatalogueController extends BaseController {
         EventProducerUtil.publish(eventCode, BusinessType.DELETE);
         EventProducerUtil.publish(eventCode, BusinessType.DELETE);
         return toAjax(result);
         return toAjax(result);
     }
     }
+    @GetMapping("/upatach/{num}")
+    public AjaxResult upatach(@PathVariable int num)throws Exception {
+        Map<String, String> paramMap = SpringUtils.getBean(RemoteConfigService.class).remotegetConfigMap(Arrays.asList(FILE_PREFIX_LOCAL, FILE_PREFIX_HIK1, FILE_PREFIX_HIK2, FILE_PREFIX_DH1, FILE_PREFIX_DH2)).getData();
+        paramMap.put("token", RemoteApiUtil.getInstance().getToken());// 大华token
+        List<Map<String, Object>> list = centereventTEventcatalogueService.selectFailUpattah(num);
+        int i = 0;
+        for (Map map:list) {
+            paramMap.put("czlx", "AI");
+            paramMap.put("busId", MapUtils.getString(map,"busId"));
+            remoteDataService.updateAttach(paramMap);
+            Thread.sleep(60000);
+            i++;
+            logger.info("==================>大华图片远程下载过程中"+MapUtils.getString(map,"busId")+"当前序号"+i);
+        }
+        return AjaxResult.success();
+    }
+
 
 
     /**
     /**
      * 手机端调用发送短信
      * 手机端调用发送短信
@@ -376,19 +401,4 @@ public class CentereventTEventcatalogueController extends BaseController {
             return AjaxResult.success(centereventTEventcatalogueService.eventhandleDownload(id));
             return AjaxResult.success(centereventTEventcatalogueService.eventhandleDownload(id));
         }
         }
     }
     }
-
-    @GetMapping("/upatach/{num}")
-    public AjaxResult upatach(@PathVariable int num) {
-        Map<String, String> paramMap = SpringUtils.getBean(RemoteConfigService.class).remotegetConfigMap(Arrays.asList(FILE_PREFIX_LOCAL, FILE_PREFIX_HIK1, FILE_PREFIX_HIK2, FILE_PREFIX_DH1, FILE_PREFIX_DH2)).getData();
-        paramMap.put("token", RemoteApiUtil.getInstance().getToken());// 大华token
-        List<Map<String, Object>> list = centereventTEventcatalogueService.selectFailUpattah(num);
-        int i = 0;
-        for (Map map : list) {
-            paramMap.put("czlx", "AI");
-            paramMap.put("busId", MapUtils.getString(map, "busId"));
-            remoteDataService.updateAttach(paramMap);
-            i++;
-        }
-        return AjaxResult.success(i);
-    }
 }
 }

+ 35 - 0
src/main/java/com/sooka/sponest/event/config/asyncTaskExecutorConfig.java

@@ -0,0 +1,35 @@
+package com.sooka.sponest.event.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+
+import java.util.concurrent.ThreadPoolExecutor;
+
+@Configuration
+public class asyncTaskExecutorConfig {
+    //阻塞队列
+    private static final int workQueue = 20;
+    //线程空闲后的存活时长
+    private static final int keepAliveTime = 30;
+    //Cpu核数
+    private static final int CPU_COUNT = Runtime.getRuntime().availableProcessors();
+    //核心线程数量大小
+    private static final int corePoolSize = Math.max(2, Math.min(CPU_COUNT - 1, 4));
+    //线程池最大容纳线程数
+    private static final int maxPoolSize = CPU_COUNT * 2 + 1;
+    @Bean("asyncTaskExecutor")
+    public ThreadPoolTaskExecutor  asyncTaskExecutor() {
+        ThreadPoolTaskExecutor threadPoolTaskExecutor = new ThreadPoolTaskExecutor();
+        threadPoolTaskExecutor.setThreadNamePrefix("asyncTaskExecutor-");//线程前缀
+        threadPoolTaskExecutor.setCorePoolSize(corePoolSize);//核心线程数
+        threadPoolTaskExecutor.setMaxPoolSize(maxPoolSize);//最大线程数
+        threadPoolTaskExecutor.setQueueCapacity(workQueue);//等待队列
+        threadPoolTaskExecutor.setKeepAliveSeconds(keepAliveTime);//线程池维护线程所允许的空闲时间,单位为秒
+        threadPoolTaskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());// 线程池对拒绝任务(无线程可用)的处理策略
+        threadPoolTaskExecutor.initialize();
+        return threadPoolTaskExecutor;
+    }
+
+}
+

+ 2 - 2
src/main/resources/mapper/centereventteventcatalogue/CentereventTEventcatalogueMapper.xml

@@ -387,7 +387,7 @@
             FROM
             FROM
                 centerevent_t_fire_log
                 centerevent_t_fire_log
             WHERE
             WHERE
-                DATEDIFF( NOW(), create_time ) >= #{num}
+                DATEDIFF( NOW(), create_time ) &lt;= #{num}
             GROUP BY
             GROUP BY
                 event_code
                 event_code
             ) d ON a.event_code = d.event_code
             ) d ON a.event_code = d.event_code
@@ -395,7 +395,7 @@
         WHERE
         WHERE
             ch.attach_path NOT LIKE 'group%'
             ch.attach_path NOT LIKE 'group%'
             AND a.report_source = 'reporting_source_1'
             AND a.report_source = 'reporting_source_1'
-            AND DATEDIFF( NOW(), a.report_time ) >= #{num}
+            AND DATEDIFF( NOW(), a.report_time ) &lt;= #{num}
             AND a.event_status_value IN ('forest_event_status_2','forest_event_status_5','forest_event_status_6','forest_event_status_7')
             AND a.event_status_value IN ('forest_event_status_2','forest_event_status_5','forest_event_status_6','forest_event_status_7')
     </select>
     </select>
 </mapper>
 </mapper>