diff --git a/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java b/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java index ad499db69..d67527d58 100644 --- a/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java +++ b/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java @@ -678,12 +678,12 @@ public class HikvisionCall { } } - @Async + @Async("getRecordForHikvisionTask") public void getDoorEventsAsync(HashMap paramMap) { getDoorEvents(paramMap); } - @Async + @Async("getRecordForHikvisionTask") public void getCrossRecordsAsync(HashMap paramMap) { getCrossRecords(paramMap); } diff --git a/src/main/java/com/zhgd/xmgl/config/AsyncConfig.java b/src/main/java/com/zhgd/xmgl/config/AsyncConfig.java index 91d9199ac..c66011348 100644 --- a/src/main/java/com/zhgd/xmgl/config/AsyncConfig.java +++ b/src/main/java/com/zhgd/xmgl/config/AsyncConfig.java @@ -467,5 +467,24 @@ public class AsyncConfig { return executor; } + @Bean("getRecordForHikvisionTask") + public ThreadPoolTaskExecutor getRecordForHikvisionTask() { + ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); + /** 核心线程数(默认线程数) */ + executor.setCorePoolSize(160); + /** 最大线程数 */ + executor.setMaxPoolSize(160); + executor.setQueueCapacity(100000); + /** 允许线程空闲时间(单位:默认为秒) */ + executor.setKeepAliveSeconds(60); + /** 线程池名前缀 */ + executor.setThreadNamePrefix("getRecordForHikvisionTask-"); + // 线程池对拒绝任务的处理策略 + executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); + // 初始化 + executor.initialize(); + return executor; + } + }