From 1f248dc02ebb9c68a8365c2a1955b4d6c8251097 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Tue, 1 Mar 2022 15:09:39 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=20common-tools?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=80=9A=E7=94=A8=E7=BA=BF=E7=A8=8B=E6=B1=A0?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E7=B1=BB=20=E6=AF=8F=E4=B8=AA=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=A2=9E=E5=8A=A0=E7=BA=BF=E7=A8=8B=E6=B1=A0=E9=85=8D?= =?UTF-8?q?=E7=BD=AExml=E5=92=8Cyml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- epmet-admin/epmet-admin-server/pom.xml | 36 +++++++ .../src/main/resources/bootstrap.yml | 13 ++- epmet-auth/pom.xml | 36 +++++++ epmet-auth/src/main/resources/bootstrap.yml | 12 +++ .../commons/tools/config/AsyncConfig.java | 93 +++++++++++++++++++ .../config/EpmetThreadPoolProperties.java | 47 ++++++++++ .../data-aggregator-server/pom.xml | 36 +++++++ .../src/main/resources/bootstrap.yml | 11 +++ .../data-report/data-report-server/pom.xml | 36 +++++++ .../src/main/resources/bootstrap.yml | 11 +++ .../data-statistical-server/pom.xml | 53 +++++++---- .../java/com/epmet/config/AsyncConfig.java | 49 ---------- .../src/main/resources/bootstrap.yml | 11 ++- .../epmet-activiti-server/pom.xml | 36 +++++++ .../src/main/resources/bootstrap.yml | 11 +++ .../common-service-server/pom.xml | 36 +++++++ .../src/main/resources/bootstrap.yml | 11 +++ .../epmet-ext/epmet-ext-server/pom.xml | 36 +++++++ .../src/main/resources/bootstrap.yml | 11 +++ .../epmet-heart/epmet-heart-server/pom.xml | 36 +++++++ .../src/main/resources/bootstrap.yml | 11 +++ .../epmet-message-server/pom.xml | 53 +++++++---- .../java/com/epmet/MessageApplication.java | 2 + .../java/com/epmet/config/AsyncConfig.java | 49 ---------- .../src/main/resources/bootstrap.yml | 12 ++- .../epmet-oss/epmet-oss-server/pom.xml | 36 +++++++ .../src/main/resources/bootstrap.yml | 11 +++ .../epmet-point/epmet-point-server/pom.xml | 56 +++++++---- .../java/com/epmet/EpmetPointApplication.java | 2 + .../java/com/epmet/config/AsyncConfig.java | 49 ---------- .../src/main/resources/bootstrap.yml | 11 ++- .../epmet-third/epmet-third-server/pom.xml | 36 +++++++ .../src/main/resources/bootstrap.yml | 13 ++- .../gov-access/gov-access-server/pom.xml | 36 +++++++ .../src/main/resources/bootstrap.yml | 13 ++- epmet-module/gov-grid/gov-grid-server/pom.xml | 36 +++++++ .../src/main/resources/bootstrap.yml | 11 +++ .../gov-issue/gov-issue-server/pom.xml | 36 +++++++ .../src/main/resources/bootstrap.yml | 11 +++ epmet-module/gov-mine/gov-mine-server/pom.xml | 36 +++++++ .../src/main/resources/bootstrap.yml | 11 +++ epmet-module/gov-org/gov-org-server/pom.xml | 35 +++++++ .../src/main/resources/bootstrap.yml | 11 +++ .../gov-project/gov-project-server/pom.xml | 36 +++++++ .../src/main/resources/bootstrap.yml | 11 +++ .../gov-voice/gov-voice-server/pom.xml | 36 +++++++ .../src/main/resources/bootstrap.yml | 11 +++ .../open-data-worker-server/pom.xml | 36 +++++++ .../src/main/resources/bootstrap.yml | 13 ++- .../oper-access/oper-access-server/pom.xml | 36 +++++++ .../src/main/resources/bootstrap.yml | 11 +++ epmet-module/oper-crm/oper-crm-server/pom.xml | 36 +++++++ .../src/main/resources/bootstrap.yml | 11 +++ .../oper-customize-server/pom.xml | 36 +++++++ .../src/main/resources/bootstrap.yml | 11 +++ .../resi-group/resi-group-server/pom.xml | 52 +++++++---- .../java/com/epmet/ResiGroupApplication.java | 2 + .../java/com/epmet/config/AsyncConfig.java | 49 ---------- .../src/main/resources/bootstrap.yml | 11 ++- epmet-openapi/epmet-openapi-scan/pom.xml | 35 +++++++ .../src/main/resources/bootstrap.yml | 11 +++ epmet-user/epmet-user-server/pom.xml | 36 +++++++ .../src/main/resources/bootstrap.yml | 11 +++ 63 files changed, 1394 insertions(+), 295 deletions(-) create mode 100644 epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/AsyncConfig.java create mode 100644 epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/EpmetThreadPoolProperties.java delete mode 100644 epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/config/AsyncConfig.java delete mode 100644 epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/config/AsyncConfig.java delete mode 100644 epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/config/AsyncConfig.java delete mode 100644 epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/config/AsyncConfig.java diff --git a/epmet-admin/epmet-admin-server/pom.xml b/epmet-admin/epmet-admin-server/pom.xml index c3b038a367..0b37977879 100644 --- a/epmet-admin/epmet-admin-server/pom.xml +++ b/epmet-admin/epmet-admin-server/pom.xml @@ -141,6 +141,15 @@ true 192.168.1.140:9876;192.168.1.141:9876 epmet_message + + + true + 5 + 8 + 20 + 60 + epmet-admin + callerRunsPolicy @@ -181,6 +190,15 @@ false 192.168.1.140:9876;192.168.1.141:9876 epmet_message + + + true + 5 + 8 + 20 + 60 + epmet-admin + callerRunsPolicy @@ -217,6 +235,15 @@ true 192.168.10.161:9876 epmet_message + + + true + 5 + 8 + 20 + 60 + epmet-admin + callerRunsPolicy @@ -254,6 +281,15 @@ true 192.168.11.187:9876;192.168.11.184:9876 epmet_message + + + true + 5 + 8 + 20 + 60 + epmet-admin + callerRunsPolicy diff --git a/epmet-admin/epmet-admin-server/src/main/resources/bootstrap.yml b/epmet-admin/epmet-admin-server/src/main/resources/bootstrap.yml index fc45940737..80503e260f 100644 --- a/epmet-admin/epmet-admin-server/src/main/resources/bootstrap.yml +++ b/epmet-admin/epmet-admin-server/src/main/resources/bootstrap.yml @@ -139,4 +139,15 @@ shutdown: rocketmq: enable: @rocketmq.enable@ - name-server: @rocketmq.nameserver@ \ No newline at end of file + name-server: @rocketmq.nameserver@ + +thread: + # 线程池配置 + threadPool: + enableCustomize: @thread.threadPool.enable-customize@ + corePoolSize: @thread.threadPool.core-pool-size@ + maxPoolSize: @thread.threadPool.max-pool-size@ + queueCapacity: @thread.threadPool.queue-capacity@ + keepAliveSeconds: @thread.threadPool.keep-alive-seconds@ + threadNamePrefix: @thread.threadPool.thread-name-prefix@ + rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ \ No newline at end of file diff --git a/epmet-auth/pom.xml b/epmet-auth/pom.xml index 41b8b92296..b4c31f05cc 100644 --- a/epmet-auth/pom.xml +++ b/epmet-auth/pom.xml @@ -216,6 +216,15 @@ UUCnxLyXiB4eBF4p https://epmet-cloud.elinkservice.cn + + + true + 5 + 8 + 20 + 60 + epmet-auth + callerRunsPolicy @@ -273,6 +282,15 @@ UUCnxLyXiB4eBF4p https://epmet-cloud.elinkservice.cn + + + true + 5 + 8 + 20 + 60 + epmet-auth + callerRunsPolicy @@ -325,6 +343,15 @@ UUCnxLyXiB4eBF4p https://epmet-cloud.elinkservice.cn + + + true + 5 + 8 + 20 + 60 + epmet-auth + callerRunsPolicy @@ -382,6 +409,15 @@ UUCnxLyXiB4eBF4p https://epmet-cloud.elinkservice.cn + + + true + 5 + 8 + 20 + 60 + epmet-auth + callerRunsPolicy diff --git a/epmet-auth/src/main/resources/bootstrap.yml b/epmet-auth/src/main/resources/bootstrap.yml index bf965caff7..8cdc2c21db 100644 --- a/epmet-auth/src/main/resources/bootstrap.yml +++ b/epmet-auth/src/main/resources/bootstrap.yml @@ -159,3 +159,15 @@ epmet: # third服务的相关配置 third: urlPrefix: @epmet.third.urlprefix@ + + +thread: + # 线程池配置 + threadPool: + enableCustomize: @thread.threadPool.enable-customize@ + corePoolSize: @thread.threadPool.core-pool-size@ + maxPoolSize: @thread.threadPool.max-pool-size@ + queueCapacity: @thread.threadPool.queue-capacity@ + keepAliveSeconds: @thread.threadPool.keep-alive-seconds@ + threadNamePrefix: @thread.threadPool.thread-name-prefix@ + rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ \ No newline at end of file diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/AsyncConfig.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/AsyncConfig.java new file mode 100644 index 0000000000..2778f3c9ef --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/AsyncConfig.java @@ -0,0 +1,93 @@ +package com.epmet.commons.tools.config; + +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; + +import java.util.concurrent.Executor; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.RejectedExecutionHandler; +import java.util.concurrent.ThreadPoolExecutor; + +/** + * 线程池配置类 + * thread: + * # 线程池配置 + * threadPool: + * enableCustomize: true [true会使用自定义线程池,false则使用springboot自动配置的线程池。推荐使用自定义线程池] + * 可以只配置此参数,其他参会会使用默认值,但还是建议把参数配置全。 + * corePoolSize: 2 + * maxPoolSize: 4 + * queueCapacity: 2 + * keepAliveSeconds: 60 + * threadNamePrefix: [线程池名字] + * rejectedExecutionHandler: [拒绝策略] + * + * 顺序:核心线程->放入队列->未达到maxPoolSize则继续增加线程直到达到maxPoolSize->拒绝策略 + * 开启自定义线程池:thread.threadPool.enableCustomize=true,不配置或者配置为false,自定义线程池都不会开启 + * rejectedExecutionHandler拒绝策略:abortPolicy/discardPolicy/discardOldestPolicy/callerRunsPolicy(默认) + */ +@EnableConfigurationProperties(EpmetThreadPoolProperties.class) +@Configuration +@ConditionalOnProperty(prefix = "thread.threadPool", name = "enableCustomize", havingValue = "true", matchIfMissing = false) +public class AsyncConfig { + + /** + * 默认值 + */ + private int corePoolSize = 5; + private int maxPoolSize = 8; + private int queueCapacity = 20; + private String threadNamePrefix = "epmet-default-"; + private int keepAliveSeconds = 60; + private String rejectedExecutionHandler = "callerRunsPolicy"; + + public AsyncConfig(EpmetThreadPoolProperties properties) { + if (properties.getCorePoolSize() != null) corePoolSize = properties.getCorePoolSize(); + if (properties.getMaxPoolSize() != null) maxPoolSize = properties.getMaxPoolSize(); + if (properties.getQueueCapacity() != null) queueCapacity = properties.getQueueCapacity(); + if (properties.getThreadNamePrefix() != null) threadNamePrefix = properties.getThreadNamePrefix(); + if (properties.getKeepAliveSeconds() != null) keepAliveSeconds = properties.getKeepAliveSeconds(); + if (properties.getRejectedExecutionHandler() != null) rejectedExecutionHandler = properties.getRejectedExecutionHandler(); + } + + @Bean + public Executor executor() { + ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); + executor.setCorePoolSize(corePoolSize); + executor.setMaxPoolSize(maxPoolSize); + executor.setQueueCapacity(queueCapacity); + executor.setThreadNamePrefix(threadNamePrefix); + executor.setRejectedExecutionHandler(getRejectedExecutionHandler(rejectedExecutionHandler)); //对拒绝task的处理策略 + executor.setKeepAliveSeconds(keepAliveSeconds); + executor.initialize(); + return executor; + } + + @Bean + public ExecutorService executorService() { + ThreadPoolTaskExecutor executor = (ThreadPoolTaskExecutor) executor(); + return executor.getThreadPoolExecutor(); + } + + /** + * 获取拒绝策略handler + * @param policy + * @return + */ + private RejectedExecutionHandler getRejectedExecutionHandler(String policy) { + switch (policy) { + case "abortPolicy": + return new ThreadPoolExecutor.AbortPolicy(); + case "discardPolicy": + return new ThreadPoolExecutor.DiscardPolicy(); + case "discardOldestPolicy": + return new ThreadPoolExecutor.DiscardOldestPolicy(); + default: + // 默认情况下,使用主线程执行 + return new ThreadPoolExecutor.CallerRunsPolicy(); + } + } +} diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/EpmetThreadPoolProperties.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/EpmetThreadPoolProperties.java new file mode 100644 index 0000000000..1984a01dec --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/config/EpmetThreadPoolProperties.java @@ -0,0 +1,47 @@ +package com.epmet.commons.tools.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; + +/** + * 线程池配置参数 + * thread-pool会自动对应到threadPool + */ +@ConfigurationProperties(prefix = "thread.thread-pool") +@Data +public class EpmetThreadPoolProperties { + + /** + * 是否允许自定义线程池 + */ + private Boolean enableCustomize; + /** + * 核心线程数 + */ + private Integer corePoolSize; + + /** + * 最大线程数 + */ + private Integer maxPoolSize; + + /** + * 队列容量 + */ + private Integer queueCapacity; + + /** + * 线程名前缀 + */ + private String threadNamePrefix; + + /** + * 线程存活时长 + */ + private Integer keepAliveSeconds; + + /** + * 拒绝策略 + */ + private String rejectedExecutionHandler; +} \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/pom.xml b/epmet-module/data-aggregator/data-aggregator-server/pom.xml index c66ced640a..f05b85d745 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/pom.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/pom.xml @@ -259,6 +259,15 @@ https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4 SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd + + + true + 5 + 8 + 20 + 60 + data-aggregator + callerRunsPolicy @@ -375,6 +384,15 @@ https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4 SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd + + + true + 5 + 8 + 20 + 60 + data-aggregator + callerRunsPolicy @@ -491,6 +509,15 @@ https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4 SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd + + + true + 5 + 8 + 20 + 60 + data-aggregator + callerRunsPolicy @@ -608,6 +635,15 @@ https://oapi.dingtalk.com/robot/send?access_token=a5f66c3374b1642fe2142dbf56d5997e280172d4e8f2b546c9423a68c82ece6c SEC95f4f40b533ad379ea6a6d1af6dd37029383cfe1b7cd96dfac2678be2c1c3ed1 + + + true + 5 + 8 + 20 + 60 + data-aggregator + callerRunsPolicy diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/bootstrap.yml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/bootstrap.yml index 934dcae2c5..9df581e38f 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/bootstrap.yml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/bootstrap.yml @@ -191,3 +191,14 @@ dingTalk: logging: level: com.epmet.dataaggre: debug + +thread: + # 线程池配置 + threadPool: + enableCustomize: @thread.threadPool.enable-customize@ + corePoolSize: @thread.threadPool.core-pool-size@ + maxPoolSize: @thread.threadPool.max-pool-size@ + queueCapacity: @thread.threadPool.queue-capacity@ + keepAliveSeconds: @thread.threadPool.keep-alive-seconds@ + threadNamePrefix: @thread.threadPool.thread-name-prefix@ + rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ diff --git a/epmet-module/data-report/data-report-server/pom.xml b/epmet-module/data-report/data-report-server/pom.xml index 170d4f0d63..472525e5e7 100644 --- a/epmet-module/data-report/data-report-server/pom.xml +++ b/epmet-module/data-report/data-report-server/pom.xml @@ -192,6 +192,15 @@ https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4 SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd + + + true + 5 + 8 + 20 + 60 + data-report + callerRunsPolicy @@ -246,6 +255,15 @@ https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4 SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd + + + true + 5 + 8 + 20 + 60 + data-report + callerRunsPolicy @@ -300,6 +318,15 @@ https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4 SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd + + + true + 5 + 8 + 20 + 60 + data-report + callerRunsPolicy @@ -354,6 +381,15 @@ https://oapi.dingtalk.com/robot/send?access_token=a5f66c3374b1642fe2142dbf56d5997e280172d4e8f2b546c9423a68c82ece6c SEC95f4f40b533ad379ea6a6d1af6dd37029383cfe1b7cd96dfac2678be2c1c3ed1 + + + true + 5 + 8 + 20 + 60 + data-report + callerRunsPolicy diff --git a/epmet-module/data-report/data-report-server/src/main/resources/bootstrap.yml b/epmet-module/data-report/data-report-server/src/main/resources/bootstrap.yml index 2ee366e369..8f7e9c61c4 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/bootstrap.yml +++ b/epmet-module/data-report/data-report-server/src/main/resources/bootstrap.yml @@ -158,3 +158,14 @@ shutdown: graceful: enable: true #是否开启优雅停机 waitTimeSecs: 30 # 优雅停机等待时间,超过30秒,发出告警 + +thread: + # 线程池配置 + threadPool: + enableCustomize: @thread.threadPool.enable-customize@ + corePoolSize: @thread.threadPool.core-pool-size@ + maxPoolSize: @thread.threadPool.max-pool-size@ + queueCapacity: @thread.threadPool.queue-capacity@ + keepAliveSeconds: @thread.threadPool.keep-alive-seconds@ + threadNamePrefix: @thread.threadPool.thread-name-prefix@ + rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ diff --git a/epmet-module/data-statistical/data-statistical-server/pom.xml b/epmet-module/data-statistical/data-statistical-server/pom.xml index 8b145da840..d142521099 100644 --- a/epmet-module/data-statistical/data-statistical-server/pom.xml +++ b/epmet-module/data-statistical/data-statistical-server/pom.xml @@ -286,11 +286,14 @@ false - - 5 - 8 - 10 - 30 + + true + 5 + 8 + 20 + 60 + data-statistical + callerRunsPolicy https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4 @@ -415,11 +418,14 @@ false - - 5 - 8 - 10 - 30 + + true + 5 + 8 + 20 + 60 + data-statistical + callerRunsPolicy https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4 @@ -543,11 +549,15 @@ false - - 5 - 8 - 10 - 30 + + true + 5 + 8 + 20 + 60 + data-statistical + callerRunsPolicy + https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4 SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd @@ -667,11 +677,14 @@ false - - 5 - 8 - 10 - 30 + + true + 5 + 8 + 20 + 60 + data-statistical + callerRunsPolicy https://oapi.dingtalk.com/robot/send?access_token=a5f66c3374b1642fe2142dbf56d5997e280172d4e8f2b546c9423a68c82ece6c diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/config/AsyncConfig.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/config/AsyncConfig.java deleted file mode 100644 index ba50e40a30..0000000000 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/config/AsyncConfig.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.epmet.config; - -import com.epmet.properties.ThreadProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -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.ExecutorService; -import java.util.concurrent.ThreadPoolExecutor; - -/** - * 线程池配置类 - */ -@Configuration -@EnableConfigurationProperties(ThreadProperties.class) -@EnableAsync -public class AsyncConfig { - - @Autowired - private ThreadProperties threadProperties; - - @Bean - public Executor executor() { - ThreadProperties.ThreadPoolProperties threadPoolProps = threadProperties.getThreadPool(); - - ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); - executor.setCorePoolSize(threadPoolProps.getCorePoolSize()); - executor.setMaxPoolSize(threadPoolProps.getMaxPoolSize()); - executor.setQueueCapacity(threadPoolProps.getQueueCapacity()); - executor.setThreadNamePrefix("data-stats-"); - // rejection-policy:当pool已经达到max size的时候,如何处理新任务 - // CALLER_RUNS:不在新线程中执行任务,而是由调用者所在的线程来执行 - executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); //对拒绝task的处理策略 - executor.setKeepAliveSeconds(threadPoolProps.getKeepAlive()); - executor.initialize(); - return executor; - } - - @Bean - public ExecutorService executorService() { - ThreadPoolTaskExecutor executor = (ThreadPoolTaskExecutor) executor(); - return executor.getThreadPoolExecutor(); - } - -} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/bootstrap.yml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/bootstrap.yml index c70278a240..8374e06c4f 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/bootstrap.yml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/bootstrap.yml @@ -197,10 +197,13 @@ dynamic: thread: # 线程池配置 threadPool: - corePoolSize: @thread.pool.core-pool-size@ - maxPoolSize: @thread.pool.max-pool-size@ - queueCapacity: @thread.pool.queue-capacity@ - keepAlive: @thread.pool.keep-alive@ + enableCustomize: @thread.threadPool.enable-customize@ + corePoolSize: @thread.threadPool.core-pool-size@ + maxPoolSize: @thread.threadPool.max-pool-size@ + queueCapacity: @thread.threadPool.queue-capacity@ + keepAliveSeconds: @thread.threadPool.keep-alive-seconds@ + threadNamePrefix: @thread.threadPool.thread-name-prefix@ + rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ dingTalk: robot: diff --git a/epmet-module/epmet-activiti/epmet-activiti-server/pom.xml b/epmet-module/epmet-activiti/epmet-activiti-server/pom.xml index fa8fd80209..3788524034 100644 --- a/epmet-module/epmet-activiti/epmet-activiti-server/pom.xml +++ b/epmet-module/epmet-activiti/epmet-activiti-server/pom.xml @@ -185,6 +185,15 @@ true false + + + true + 5 + 8 + 20 + 60 + epmet-activiti + callerRunsPolicy @@ -219,6 +228,15 @@ false false + + + true + 5 + 8 + 20 + 60 + epmet-activiti + callerRunsPolicy @@ -250,6 +268,15 @@ true true + + + true + 5 + 8 + 20 + 60 + epmet-activiti + callerRunsPolicy @@ -281,6 +308,15 @@ true true + + + true + 5 + 8 + 20 + 60 + epmet-activiti + callerRunsPolicy diff --git a/epmet-module/epmet-activiti/epmet-activiti-server/src/main/resources/bootstrap.yml b/epmet-module/epmet-activiti/epmet-activiti-server/src/main/resources/bootstrap.yml index f31026085f..b39474ad3d 100644 --- a/epmet-module/epmet-activiti/epmet-activiti-server/src/main/resources/bootstrap.yml +++ b/epmet-module/epmet-activiti/epmet-activiti-server/src/main/resources/bootstrap.yml @@ -109,3 +109,14 @@ hystrix: ribbon: ReadTimeout: 300000 ConnectTimeout: 300000 + +thread: + # 线程池配置 + threadPool: + enableCustomize: @thread.threadPool.enable-customize@ + corePoolSize: @thread.threadPool.core-pool-size@ + maxPoolSize: @thread.threadPool.max-pool-size@ + queueCapacity: @thread.threadPool.queue-capacity@ + keepAliveSeconds: @thread.threadPool.keep-alive-seconds@ + threadNamePrefix: @thread.threadPool.thread-name-prefix@ + rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ diff --git a/epmet-module/epmet-common-service/common-service-server/pom.xml b/epmet-module/epmet-common-service/common-service-server/pom.xml index 2e22c32c01..036a6c13bc 100644 --- a/epmet-module/epmet-common-service/common-service-server/pom.xml +++ b/epmet-module/epmet-common-service/common-service-server/pom.xml @@ -139,6 +139,15 @@ SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd + + + true + 5 + 8 + 20 + 60 + common-service + callerRunsPolicy @@ -187,6 +196,15 @@ SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd + + + true + 5 + 8 + 20 + 60 + common-service + callerRunsPolicy @@ -233,6 +251,15 @@ SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd + + + true + 5 + 8 + 20 + 60 + common-service + callerRunsPolicy @@ -276,6 +303,15 @@ SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd + + + true + 5 + 8 + 20 + 60 + common-service + callerRunsPolicy diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/resources/bootstrap.yml b/epmet-module/epmet-common-service/common-service-server/src/main/resources/bootstrap.yml index 3da9f56074..1900bf9009 100644 --- a/epmet-module/epmet-common-service/common-service-server/src/main/resources/bootstrap.yml +++ b/epmet-module/epmet-common-service/common-service-server/src/main/resources/bootstrap.yml @@ -140,3 +140,14 @@ shutdown: graceful: enable: true #是否开启优雅停机 waitTimeSecs: 30 # 优雅停机等待时间,超过30秒,发出告警 + +thread: + # 线程池配置 + threadPool: + enableCustomize: @thread.threadPool.enable-customize@ + corePoolSize: @thread.threadPool.core-pool-size@ + maxPoolSize: @thread.threadPool.max-pool-size@ + queueCapacity: @thread.threadPool.queue-capacity@ + keepAliveSeconds: @thread.threadPool.keep-alive-seconds@ + threadNamePrefix: @thread.threadPool.thread-name-prefix@ + rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ diff --git a/epmet-module/epmet-ext/epmet-ext-server/pom.xml b/epmet-module/epmet-ext/epmet-ext-server/pom.xml index e0d4e979b0..c7c3165af0 100644 --- a/epmet-module/epmet-ext/epmet-ext-server/pom.xml +++ b/epmet-module/epmet-ext/epmet-ext-server/pom.xml @@ -226,6 +226,15 @@ SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd + + + true + 5 + 8 + 20 + 60 + epmet-ext + callerRunsPolicy @@ -267,6 +276,15 @@ SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd + + + true + 5 + 8 + 20 + 60 + epmet-ext + callerRunsPolicy @@ -308,6 +326,15 @@ SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd + + + true + 5 + 8 + 20 + 60 + epmet-ext + callerRunsPolicy @@ -350,6 +377,15 @@ SEC95f4f40b533ad379ea6a6d1af6dd37029383cfe1b7cd96dfac2678be2c1c3ed1 + + + true + 5 + 8 + 20 + 60 + epmet-ext + callerRunsPolicy diff --git a/epmet-module/epmet-ext/epmet-ext-server/src/main/resources/bootstrap.yml b/epmet-module/epmet-ext/epmet-ext-server/src/main/resources/bootstrap.yml index bf9a797c20..d4e3824a5d 100644 --- a/epmet-module/epmet-ext/epmet-ext-server/src/main/resources/bootstrap.yml +++ b/epmet-module/epmet-ext/epmet-ext-server/src/main/resources/bootstrap.yml @@ -117,3 +117,14 @@ shutdown: openApi: accessToken: expire: 7200 + +thread: + # 线程池配置 + threadPool: + enableCustomize: @thread.threadPool.enable-customize@ + corePoolSize: @thread.threadPool.core-pool-size@ + maxPoolSize: @thread.threadPool.max-pool-size@ + queueCapacity: @thread.threadPool.queue-capacity@ + keepAliveSeconds: @thread.threadPool.keep-alive-seconds@ + threadNamePrefix: @thread.threadPool.thread-name-prefix@ + rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ diff --git a/epmet-module/epmet-heart/epmet-heart-server/pom.xml b/epmet-module/epmet-heart/epmet-heart-server/pom.xml index ba92a6d321..de94b424d3 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/pom.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/pom.xml @@ -162,6 +162,15 @@ true 192.168.1.140:9876;192.168.1.141:9876 + + + true + 5 + 8 + 20 + 60 + epmet-heart + callerRunsPolicy @@ -209,6 +218,15 @@ false 192.168.1.140:9876;192.168.1.141:9876 + + + true + 5 + 8 + 20 + 60 + epmet-heart + callerRunsPolicy @@ -256,6 +274,15 @@ true 192.168.10.161:9876 + + + true + 5 + 8 + 20 + 60 + epmet-heart + callerRunsPolicy @@ -303,6 +330,15 @@ true 192.168.11.187:9876;192.168.11.184:9876 + + + true + 5 + 8 + 20 + 60 + epmet-heart + callerRunsPolicy diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/bootstrap.yml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/bootstrap.yml index aa43055c8e..31db2a802b 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/bootstrap.yml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/bootstrap.yml @@ -150,3 +150,14 @@ shutdown: graceful: enable: true #是否开启优雅停机 waitTimeSecs: 30 # 优雅停机等待时间,超过30秒,发出告警 + +thread: + # 线程池配置 + threadPool: + enableCustomize: @thread.threadPool.enable-customize@ + corePoolSize: @thread.threadPool.core-pool-size@ + maxPoolSize: @thread.threadPool.max-pool-size@ + queueCapacity: @thread.threadPool.queue-capacity@ + keepAliveSeconds: @thread.threadPool.keep-alive-seconds@ + threadNamePrefix: @thread.threadPool.thread-name-prefix@ + rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ diff --git a/epmet-module/epmet-message/epmet-message-server/pom.xml b/epmet-module/epmet-message/epmet-message-server/pom.xml index fe91db7f6b..2bef421caa 100644 --- a/epmet-module/epmet-message/epmet-message-server/pom.xml +++ b/epmet-module/epmet-message/epmet-message-server/pom.xml @@ -188,10 +188,13 @@ false - 5 - 8 - 10 - 30 + true + 5 + 8 + 20 + 60 + epmet-message + callerRunsPolicy @@ -238,11 +241,15 @@ false - - 5 - 8 - 10 - 30 + + true + 5 + 8 + 20 + 60 + epmet-message + callerRunsPolicy + https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4 @@ -288,11 +295,15 @@ true - - 5 - 8 - 10 - 30 + + true + 5 + 8 + 20 + 60 + epmet-message + callerRunsPolicy + https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4 @@ -336,11 +347,15 @@ true - - 5 - 8 - 10 - 30 + + true + 5 + 8 + 20 + 60 + epmet-message + callerRunsPolicy + https://oapi.dingtalk.com/robot/send?access_token=a5f66c3374b1642fe2142dbf56d5997e280172d4e8f2b546c9423a68c82ece6c diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/MessageApplication.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/MessageApplication.java index c32da6dd8a..9affe3659b 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/MessageApplication.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/MessageApplication.java @@ -13,6 +13,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.scheduling.annotation.EnableAsync; /** * 消息模块 @@ -24,6 +25,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @EnableDiscoveryClient @EnableFeignClients @ServletComponentScan +@EnableAsync public class MessageApplication { public static void main(String[] args) { diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/config/AsyncConfig.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/config/AsyncConfig.java deleted file mode 100644 index 95c0b0c55a..0000000000 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/config/AsyncConfig.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.epmet.config; - -import com.epmet.properties.ThreadProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -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.ExecutorService; -import java.util.concurrent.ThreadPoolExecutor; - -/** - * 线程池配置类 - */ -@Configuration -@EnableConfigurationProperties(ThreadProperties.class) -@EnableAsync -public class AsyncConfig { - - @Autowired - private ThreadProperties threadProperties; - - @Bean - public Executor executor() { - ThreadProperties.ThreadPoolProperties threadPoolProps = threadProperties.getThreadPool(); - - ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); - executor.setCorePoolSize(threadPoolProps.getCorePoolSize()); - executor.setMaxPoolSize(threadPoolProps.getMaxPoolSize()); - executor.setQueueCapacity(threadPoolProps.getQueueCapacity()); - executor.setThreadNamePrefix("epmet-message-"); - // rejection-policy:当pool已经达到max size的时候,如何处理新任务 - // CALLER_RUNS:不在新线程中执行任务,而是由调用者所在的线程来执行 - executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); //对拒绝task的处理策略 - executor.setKeepAliveSeconds(threadPoolProps.getKeepAlive()); - executor.initialize(); - return executor; - } - - @Bean - public ExecutorService executorService() { - ThreadPoolTaskExecutor executor = (ThreadPoolTaskExecutor) executor(); - return executor.getThreadPoolExecutor(); - } - -} diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/resources/bootstrap.yml b/epmet-module/epmet-message/epmet-message-server/src/main/resources/bootstrap.yml index f4f88d87ca..84dd154e10 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/resources/bootstrap.yml +++ b/epmet-module/epmet-message/epmet-message-server/src/main/resources/bootstrap.yml @@ -126,10 +126,13 @@ pagehelper: thread: # 线程池配置 threadPool: - corePoolSize: @thread.pool.core-pool-size@ - maxPoolSize: @thread.pool.max-pool-size@ - queueCapacity: @thread.pool.queue-capacity@ - keepAlive: @thread.pool.keep-alive@ + enableCustomize: @thread.threadPool.enable-customize@ + corePoolSize: @thread.threadPool.core-pool-size@ + maxPoolSize: @thread.threadPool.max-pool-size@ + queueCapacity: @thread.threadPool.queue-capacity@ + keepAliveSeconds: @thread.threadPool.keep-alive-seconds@ + threadNamePrefix: @thread.threadPool.thread-name-prefix@ + rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ dingTalk: robot: @@ -146,3 +149,4 @@ rocketmq: name-server: @rocketmq.nameserver@ producer: group: @rocketmq.producer.group@ + diff --git a/epmet-module/epmet-oss/epmet-oss-server/pom.xml b/epmet-module/epmet-oss/epmet-oss-server/pom.xml index e27a7d8103..e1aa4893b4 100644 --- a/epmet-module/epmet-oss/epmet-oss-server/pom.xml +++ b/epmet-module/epmet-oss/epmet-oss-server/pom.xml @@ -146,6 +146,15 @@ false + + true + 5 + 8 + 20 + 60 + epmet-oss + callerRunsPolicy + https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4 @@ -185,6 +194,15 @@ false + + true + 5 + 8 + 20 + 60 + epmet-oss + callerRunsPolicy + false @@ -225,6 +243,15 @@ true + + true + 5 + 8 + 20 + 60 + epmet-oss + callerRunsPolicy + true @@ -262,6 +289,15 @@ true + + true + 5 + 8 + 20 + 60 + epmet-oss + callerRunsPolicy + true diff --git a/epmet-module/epmet-oss/epmet-oss-server/src/main/resources/bootstrap.yml b/epmet-module/epmet-oss/epmet-oss-server/src/main/resources/bootstrap.yml index 1b939a5edd..334e1e5629 100644 --- a/epmet-module/epmet-oss/epmet-oss-server/src/main/resources/bootstrap.yml +++ b/epmet-module/epmet-oss/epmet-oss-server/src/main/resources/bootstrap.yml @@ -143,3 +143,14 @@ shutdown: graceful: enable: true #是否开启优雅停机 waitTimeSecs: 30 # 优雅停机等待时间,超过30秒,发出告警 + +thread: + # 线程池配置 + threadPool: + enableCustomize: @thread.threadPool.enable-customize@ + corePoolSize: @thread.threadPool.core-pool-size@ + maxPoolSize: @thread.threadPool.max-pool-size@ + queueCapacity: @thread.threadPool.queue-capacity@ + keepAliveSeconds: @thread.threadPool.keep-alive-seconds@ + threadNamePrefix: @thread.threadPool.thread-name-prefix@ + rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ diff --git a/epmet-module/epmet-point/epmet-point-server/pom.xml b/epmet-module/epmet-point/epmet-point-server/pom.xml index 8aea483cfd..2dcda97101 100644 --- a/epmet-module/epmet-point/epmet-point-server/pom.xml +++ b/epmet-module/epmet-point/epmet-point-server/pom.xml @@ -159,11 +159,15 @@ false - - 5 - 8 - 10 - 30 + + true + 5 + 8 + 20 + 60 + epmet-point + callerRunsPolicy + https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4 SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd @@ -206,11 +210,15 @@ false - - 5 - 8 - 10 - 30 + + true + 5 + 8 + 20 + 60 + epmet-point + callerRunsPolicy + https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4 SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd @@ -253,11 +261,15 @@ true - - 5 - 8 - 10 - 30 + + true + 5 + 8 + 20 + 60 + epmet-point + callerRunsPolicy + https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4 SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd @@ -300,11 +312,15 @@ true - - 5 - 8 - 10 - 30 + + true + 5 + 8 + 20 + 60 + epmet-point + callerRunsPolicy + https://oapi.dingtalk.com/robot/send?access_token=a5f66c3374b1642fe2142dbf56d5997e280172d4e8f2b546c9423a68c82ece6c SEC95f4f40b533ad379ea6a6d1af6dd37029383cfe1b7cd96dfac2678be2c1c3ed1 diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/EpmetPointApplication.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/EpmetPointApplication.java index e2925628ba..79d5713a34 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/EpmetPointApplication.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/EpmetPointApplication.java @@ -5,6 +5,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.scheduling.annotation.EnableAsync; /** * 模块 @@ -16,6 +17,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @EnableDiscoveryClient @EnableFeignClients @ServletComponentScan +@EnableAsync public class EpmetPointApplication { public static void main(String[] args) { SpringApplication.run(EpmetPointApplication.class, args); diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/config/AsyncConfig.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/config/AsyncConfig.java deleted file mode 100644 index 2573cbd4ab..0000000000 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/config/AsyncConfig.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.epmet.config; - -import com.epmet.properties.ThreadProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -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.ExecutorService; -import java.util.concurrent.ThreadPoolExecutor; - -/** - * 线程池配置类 - */ -@Configuration -@EnableConfigurationProperties(ThreadProperties.class) -@EnableAsync -public class AsyncConfig { - - @Autowired - private ThreadProperties threadProperties; - - @Bean - public Executor executor() { - ThreadProperties.ThreadPoolProperties threadPoolProps = threadProperties.getThreadPool(); - - ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); - executor.setCorePoolSize(threadPoolProps.getCorePoolSize()); - executor.setMaxPoolSize(threadPoolProps.getMaxPoolSize()); - executor.setQueueCapacity(threadPoolProps.getQueueCapacity()); - executor.setThreadNamePrefix("epmet-point-"); - // rejection-policy:当pool已经达到max size的时候,如何处理新任务 - // CALLER_RUNS:不在新线程中执行任务,而是由调用者所在的线程来执行 - executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); //对拒绝task的处理策略 - executor.setKeepAliveSeconds(threadPoolProps.getKeepAlive()); - executor.initialize(); - return executor; - } - - @Bean - public ExecutorService executorService() { - ThreadPoolTaskExecutor executor = (ThreadPoolTaskExecutor) executor(); - return executor.getThreadPoolExecutor(); - } - -} diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/resources/bootstrap.yml b/epmet-module/epmet-point/epmet-point-server/src/main/resources/bootstrap.yml index 4d5434a25f..b3fa3f8fe9 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/resources/bootstrap.yml +++ b/epmet-module/epmet-point/epmet-point-server/src/main/resources/bootstrap.yml @@ -126,10 +126,13 @@ pagehelper: thread: # 线程池配置 threadPool: - corePoolSize: @thread.pool.core-pool-size@ - maxPoolSize: @thread.pool.max-pool-size@ - queueCapacity: @thread.pool.queue-capacity@ - keepAlive: @thread.pool.keep-alive@ + enableCustomize: @thread.threadPool.enable-customize@ + corePoolSize: @thread.threadPool.core-pool-size@ + maxPoolSize: @thread.threadPool.max-pool-size@ + queueCapacity: @thread.threadPool.queue-capacity@ + keepAliveSeconds: @thread.threadPool.keep-alive-seconds@ + threadNamePrefix: @thread.threadPool.thread-name-prefix@ + rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ dingTalk: robot: diff --git a/epmet-module/epmet-third/epmet-third-server/pom.xml b/epmet-module/epmet-third/epmet-third-server/pom.xml index 0b24d1acb0..a319b011d2 100644 --- a/epmet-module/epmet-third/epmet-third-server/pom.xml +++ b/epmet-module/epmet-third/epmet-third-server/pom.xml @@ -212,6 +212,15 @@ true + + true + 5 + 8 + 20 + 60 + epmet-third + callerRunsPolicy + false @@ -263,6 +272,15 @@ false + + true + 5 + 8 + 20 + 60 + epmet-third + callerRunsPolicy + false @@ -313,6 +331,15 @@ true + + true + 5 + 8 + 20 + 60 + epmet-third + callerRunsPolicy + true @@ -364,6 +391,15 @@ true + + true + 5 + 8 + 20 + 60 + epmet-third + callerRunsPolicy + true diff --git a/epmet-module/epmet-third/epmet-third-server/src/main/resources/bootstrap.yml b/epmet-module/epmet-third/epmet-third-server/src/main/resources/bootstrap.yml index 1ad3de55ca..67b1a2740e 100644 --- a/epmet-module/epmet-third/epmet-third-server/src/main/resources/bootstrap.yml +++ b/epmet-module/epmet-third/epmet-third-server/src/main/resources/bootstrap.yml @@ -160,4 +160,15 @@ rocketmq: enable: @rocketmq.block-chain.enable@ name-server: @rocketmq.block-chain.name-server@ access-key: @rocketmq.block-chain.access-key@ - secret-key: @rocketmq.block-chain.secret-key@ \ No newline at end of file + secret-key: @rocketmq.block-chain.secret-key@ + +thread: + # 线程池配置 + threadPool: + enableCustomize: @thread.threadPool.enable-customize@ + corePoolSize: @thread.threadPool.core-pool-size@ + maxPoolSize: @thread.threadPool.max-pool-size@ + queueCapacity: @thread.threadPool.queue-capacity@ + keepAliveSeconds: @thread.threadPool.keep-alive-seconds@ + threadNamePrefix: @thread.threadPool.thread-name-prefix@ + rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ \ No newline at end of file diff --git a/epmet-module/gov-access/gov-access-server/pom.xml b/epmet-module/gov-access/gov-access-server/pom.xml index 35f2a95c85..b99aea3799 100644 --- a/epmet-module/gov-access/gov-access-server/pom.xml +++ b/epmet-module/gov-access/gov-access-server/pom.xml @@ -127,6 +127,15 @@ true + + true + 5 + 8 + 20 + 60 + gov-access + callerRunsPolicy + false @@ -166,6 +175,15 @@ false + + true + 5 + 8 + 20 + 60 + gov-access + callerRunsPolicy + false @@ -205,6 +223,15 @@ true + + true + 5 + 8 + 20 + 60 + gov-access + callerRunsPolicy + true @@ -241,6 +268,15 @@ true + + true + 5 + 8 + 20 + 60 + gov-access + callerRunsPolicy + true diff --git a/epmet-module/gov-access/gov-access-server/src/main/resources/bootstrap.yml b/epmet-module/gov-access/gov-access-server/src/main/resources/bootstrap.yml index 0531e3885e..94f07d888b 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/resources/bootstrap.yml +++ b/epmet-module/gov-access/gov-access-server/src/main/resources/bootstrap.yml @@ -130,4 +130,15 @@ logging: dingTalk: robot: webHook: @dingTalk.robot.webHook@ - secret: @dingTalk.robot.secret@ \ No newline at end of file + secret: @dingTalk.robot.secret@ + +thread: + # 线程池配置 + threadPool: + enableCustomize: @thread.threadPool.enable-customize@ + corePoolSize: @thread.threadPool.core-pool-size@ + maxPoolSize: @thread.threadPool.max-pool-size@ + queueCapacity: @thread.threadPool.queue-capacity@ + keepAliveSeconds: @thread.threadPool.keep-alive-seconds@ + threadNamePrefix: @thread.threadPool.thread-name-prefix@ + rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ \ No newline at end of file diff --git a/epmet-module/gov-grid/gov-grid-server/pom.xml b/epmet-module/gov-grid/gov-grid-server/pom.xml index 3e4eac304b..5a7686b00c 100644 --- a/epmet-module/gov-grid/gov-grid-server/pom.xml +++ b/epmet-module/gov-grid/gov-grid-server/pom.xml @@ -119,6 +119,15 @@ true + + true + 5 + 8 + 20 + 60 + gov-grid + callerRunsPolicy + false @@ -153,6 +162,15 @@ false + + true + 5 + 8 + 20 + 60 + gov-grid + callerRunsPolicy + false @@ -187,6 +205,15 @@ true + + true + 5 + 8 + 20 + 60 + gov-grid + callerRunsPolicy + true @@ -221,6 +248,15 @@ true + + true + 5 + 8 + 20 + 60 + gov-grid + callerRunsPolicy + true diff --git a/epmet-module/gov-grid/gov-grid-server/src/main/resources/bootstrap.yml b/epmet-module/gov-grid/gov-grid-server/src/main/resources/bootstrap.yml index d9f0085bd7..f9d8a3caa6 100644 --- a/epmet-module/gov-grid/gov-grid-server/src/main/resources/bootstrap.yml +++ b/epmet-module/gov-grid/gov-grid-server/src/main/resources/bootstrap.yml @@ -89,3 +89,14 @@ shutdown: graceful: enable: true #是否开启优雅停机 waitTimeSecs: 30 # 优雅停机等待时间,超过30秒,发出告警 + +thread: + # 线程池配置 + threadPool: + enableCustomize: @thread.threadPool.enable-customize@ + corePoolSize: @thread.threadPool.core-pool-size@ + maxPoolSize: @thread.threadPool.max-pool-size@ + queueCapacity: @thread.threadPool.queue-capacity@ + keepAliveSeconds: @thread.threadPool.keep-alive-seconds@ + threadNamePrefix: @thread.threadPool.thread-name-prefix@ + rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ diff --git a/epmet-module/gov-issue/gov-issue-server/pom.xml b/epmet-module/gov-issue/gov-issue-server/pom.xml index c09284177c..0132b21cca 100644 --- a/epmet-module/gov-issue/gov-issue-server/pom.xml +++ b/epmet-module/gov-issue/gov-issue-server/pom.xml @@ -169,6 +169,15 @@ true + + true + 5 + 8 + 20 + 60 + gov-issue + callerRunsPolicy + false https://epmet-dev.elinkservice.cn/api/epmetscan/api @@ -212,6 +221,15 @@ false + + true + 5 + 8 + 20 + 60 + gov-issue + callerRunsPolicy + false https://epmet-dev.elinkservice.cn/api/epmetscan/api @@ -255,6 +273,15 @@ true + + true + 5 + 8 + 20 + 60 + gov-issue + callerRunsPolicy + true https://epmet-dev.elinkservice.cn/api/epmetscan/api @@ -294,6 +321,15 @@ true + + true + 5 + 8 + 20 + 60 + gov-issue + callerRunsPolicy + true https://epmet-open.elinkservice.cn/api/epmetscan/api diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/bootstrap.yml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/bootstrap.yml index 93a00cd354..af7dee2c58 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/bootstrap.yml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/bootstrap.yml @@ -142,3 +142,14 @@ shutdown: rocketmq: enable: @rocketmq.enable@ name-server: @rocketmq.nameserver@ + +thread: + # 线程池配置 + threadPool: + enableCustomize: @thread.threadPool.enable-customize@ + corePoolSize: @thread.threadPool.core-pool-size@ + maxPoolSize: @thread.threadPool.max-pool-size@ + queueCapacity: @thread.threadPool.queue-capacity@ + keepAliveSeconds: @thread.threadPool.keep-alive-seconds@ + threadNamePrefix: @thread.threadPool.thread-name-prefix@ + rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ diff --git a/epmet-module/gov-mine/gov-mine-server/pom.xml b/epmet-module/gov-mine/gov-mine-server/pom.xml index c643659b07..22c67633ee 100644 --- a/epmet-module/gov-mine/gov-mine-server/pom.xml +++ b/epmet-module/gov-mine/gov-mine-server/pom.xml @@ -139,6 +139,15 @@ true + + true + 5 + 8 + 20 + 60 + gov-mine + callerRunsPolicy + https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4 @@ -172,6 +181,15 @@ false + + true + 5 + 8 + 20 + 60 + gov-mine + callerRunsPolicy + https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4 @@ -205,6 +223,15 @@ true + + true + 5 + 8 + 20 + 60 + gov-mine + callerRunsPolicy + https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4 @@ -235,6 +262,15 @@ true + + true + 5 + 8 + 20 + 60 + gov-mine + callerRunsPolicy + https://oapi.dingtalk.com/robot/send?access_token=a5f66c3374b1642fe2142dbf56d5997e280172d4e8f2b546c9423a68c82ece6c diff --git a/epmet-module/gov-mine/gov-mine-server/src/main/resources/bootstrap.yml b/epmet-module/gov-mine/gov-mine-server/src/main/resources/bootstrap.yml index 97052173b9..88eabe8772 100644 --- a/epmet-module/gov-mine/gov-mine-server/src/main/resources/bootstrap.yml +++ b/epmet-module/gov-mine/gov-mine-server/src/main/resources/bootstrap.yml @@ -108,3 +108,14 @@ shutdown: graceful: enable: true #是否开启优雅停机 waitTimeSecs: 30 # 优雅停机等待时间,超过30秒,发出告警 + +thread: + # 线程池配置 + threadPool: + enableCustomize: @thread.threadPool.enable-customize@ + corePoolSize: @thread.threadPool.core-pool-size@ + maxPoolSize: @thread.threadPool.max-pool-size@ + queueCapacity: @thread.threadPool.queue-capacity@ + keepAliveSeconds: @thread.threadPool.keep-alive-seconds@ + threadNamePrefix: @thread.threadPool.thread-name-prefix@ + rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ diff --git a/epmet-module/gov-org/gov-org-server/pom.xml b/epmet-module/gov-org/gov-org-server/pom.xml index 094292fe13..5fcba99cf3 100644 --- a/epmet-module/gov-org/gov-org-server/pom.xml +++ b/epmet-module/gov-org/gov-org-server/pom.xml @@ -198,6 +198,15 @@ true + + true + 5 + 8 + 20 + 60 + gov-org + callerRunsPolicy + false @@ -243,6 +252,15 @@ false + + true + 5 + 8 + 20 + 60 + gov-org + callerRunsPolicy + false @@ -288,6 +306,14 @@ true + + true + 5 + 8 + 20 + 60 + gov-org + callerRunsPolicy true @@ -331,6 +357,15 @@ true + + true + 5 + 8 + 20 + 60 + gov-org + callerRunsPolicy + true diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/bootstrap.yml b/epmet-module/gov-org/gov-org-server/src/main/resources/bootstrap.yml index ddd78b7407..8039b75e00 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/bootstrap.yml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/bootstrap.yml @@ -154,3 +154,14 @@ rocketmq: name-server: @rocketmq.nameserver@ # consume-thread-min: 2 # consume-thread-max: 2 + +thread: + # 线程池配置 + threadPool: + enableCustomize: @thread.threadPool.enable-customize@ + corePoolSize: @thread.threadPool.core-pool-size@ + maxPoolSize: @thread.threadPool.max-pool-size@ + queueCapacity: @thread.threadPool.queue-capacity@ + keepAliveSeconds: @thread.threadPool.keep-alive-seconds@ + threadNamePrefix: @thread.threadPool.thread-name-prefix@ + rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ diff --git a/epmet-module/gov-project/gov-project-server/pom.xml b/epmet-module/gov-project/gov-project-server/pom.xml index 69e7500932..88e598b596 100644 --- a/epmet-module/gov-project/gov-project-server/pom.xml +++ b/epmet-module/gov-project/gov-project-server/pom.xml @@ -187,6 +187,15 @@ true + + true + 5 + 8 + 20 + 60 + gov-project + callerRunsPolicy + false https://epmet-dev.elinkservice.cn/api/epmetscan/api @@ -229,6 +238,15 @@ false + + true + 5 + 8 + 20 + 60 + gov-project + callerRunsPolicy + false https://epmet-dev.elinkservice.cn/api/epmetscan/api @@ -270,6 +288,15 @@ true + + true + 5 + 8 + 20 + 60 + gov-project + callerRunsPolicy + true https://epmet-dev.elinkservice.cn/api/epmetscan/api @@ -308,6 +335,15 @@ true + + true + 5 + 8 + 20 + 60 + gov-project + callerRunsPolicy + true https://epmet-open.elinkservice.cn/api/epmetscan/api diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/bootstrap.yml b/epmet-module/gov-project/gov-project-server/src/main/resources/bootstrap.yml index 7821e73e53..15aa1dcbfb 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/bootstrap.yml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/bootstrap.yml @@ -141,3 +141,14 @@ shutdown: graceful: enable: true #是否开启优雅停机 waitTimeSecs: 30 # 优雅停机等待时间,超过30秒,发出告警 + +thread: + # 线程池配置 + threadPool: + enableCustomize: @thread.threadPool.enable-customize@ + corePoolSize: @thread.threadPool.core-pool-size@ + maxPoolSize: @thread.threadPool.max-pool-size@ + queueCapacity: @thread.threadPool.queue-capacity@ + keepAliveSeconds: @thread.threadPool.keep-alive-seconds@ + threadNamePrefix: @thread.threadPool.thread-name-prefix@ + rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ diff --git a/epmet-module/gov-voice/gov-voice-server/pom.xml b/epmet-module/gov-voice/gov-voice-server/pom.xml index 305075f3a6..acee6a8306 100644 --- a/epmet-module/gov-voice/gov-voice-server/pom.xml +++ b/epmet-module/gov-voice/gov-voice-server/pom.xml @@ -132,6 +132,15 @@ true + + true + 5 + 8 + 20 + 60 + gov-voice + callerRunsPolicy + false https://epmet-dev.elinkservice.cn/api/epmetscan/api @@ -173,6 +182,15 @@ false + + true + 5 + 8 + 20 + 60 + gov-voice + callerRunsPolicy + false https://epmet-dev.elinkservice.cn/api/epmetscan/api @@ -214,6 +232,15 @@ true + + true + 5 + 8 + 20 + 60 + gov-voice + callerRunsPolicy + true https://epmet-dev.elinkservice.cn/api/epmetscan/api @@ -252,6 +279,15 @@ true + + true + 5 + 8 + 20 + 60 + gov-voice + callerRunsPolicy + true https://epmet-open.elinkservice.cn/api/epmetscan/api diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/resources/bootstrap.yml b/epmet-module/gov-voice/gov-voice-server/src/main/resources/bootstrap.yml index 16425361b7..352c1d59e4 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/resources/bootstrap.yml +++ b/epmet-module/gov-voice/gov-voice-server/src/main/resources/bootstrap.yml @@ -129,3 +129,14 @@ shutdown: graceful: enable: true #是否开启优雅停机 waitTimeSecs: 30 # 优雅停机等待时间,超过30秒,发出告警 + +thread: + # 线程池配置 + threadPool: + enableCustomize: @thread.threadPool.enable-customize@ + corePoolSize: @thread.threadPool.core-pool-size@ + maxPoolSize: @thread.threadPool.max-pool-size@ + queueCapacity: @thread.threadPool.queue-capacity@ + keepAliveSeconds: @thread.threadPool.keep-alive-seconds@ + threadNamePrefix: @thread.threadPool.thread-name-prefix@ + rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ diff --git a/epmet-module/open-data-worker/open-data-worker-server/pom.xml b/epmet-module/open-data-worker/open-data-worker-server/pom.xml index 802f37d762..f5e8264f49 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/pom.xml +++ b/epmet-module/open-data-worker/open-data-worker-server/pom.xml @@ -140,6 +140,15 @@ true + + true + 5 + 8 + 20 + 60 + open-data-worker + callerRunsPolicy + false @@ -183,6 +192,15 @@ false + + true + 5 + 8 + 20 + 60 + open-data-worker + callerRunsPolicy + false @@ -226,6 +244,15 @@ true + + true + 5 + 8 + 20 + 60 + open-data-worker + callerRunsPolicy + true @@ -266,6 +293,15 @@ true + + true + 5 + 8 + 20 + 60 + open-data-worker + callerRunsPolicy + true diff --git a/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/bootstrap.yml b/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/bootstrap.yml index 49db95eb6d..a27e8fdf66 100644 --- a/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/bootstrap.yml +++ b/epmet-module/open-data-worker/open-data-worker-server/src/main/resources/bootstrap.yml @@ -135,4 +135,15 @@ dingTalk: rocketmq: # 是否开启mq enable: @rocketmq.enable@ - name-server: @rocketmq.nameserver@ \ No newline at end of file + name-server: @rocketmq.nameserver@ + +thread: + # 线程池配置 + threadPool: + enableCustomize: @thread.threadPool.enable-customize@ + corePoolSize: @thread.threadPool.core-pool-size@ + maxPoolSize: @thread.threadPool.max-pool-size@ + queueCapacity: @thread.threadPool.queue-capacity@ + keepAliveSeconds: @thread.threadPool.keep-alive-seconds@ + threadNamePrefix: @thread.threadPool.thread-name-prefix@ + rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ \ No newline at end of file diff --git a/epmet-module/oper-access/oper-access-server/pom.xml b/epmet-module/oper-access/oper-access-server/pom.xml index 8d3c8706e8..0089943bf7 100644 --- a/epmet-module/oper-access/oper-access-server/pom.xml +++ b/epmet-module/oper-access/oper-access-server/pom.xml @@ -120,6 +120,15 @@ true + + true + 5 + 8 + 20 + 60 + oper-access + callerRunsPolicy + false @@ -160,6 +169,15 @@ false + + true + 5 + 8 + 20 + 60 + oper-access + callerRunsPolicy + false @@ -200,6 +218,15 @@ true + + true + 5 + 8 + 20 + 60 + oper-access + callerRunsPolicy + true @@ -237,6 +264,15 @@ true + + true + 5 + 8 + 20 + 60 + oper-access + callerRunsPolicy + true diff --git a/epmet-module/oper-access/oper-access-server/src/main/resources/bootstrap.yml b/epmet-module/oper-access/oper-access-server/src/main/resources/bootstrap.yml index ba387b80c4..9ed804a4a3 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/resources/bootstrap.yml +++ b/epmet-module/oper-access/oper-access-server/src/main/resources/bootstrap.yml @@ -132,3 +132,14 @@ shutdown: graceful: enable: true #是否开启优雅停机 waitTimeSecs: 30 # 优雅停机等待时间,超过30秒,发出告警 + +thread: + # 线程池配置 + threadPool: + enableCustomize: @thread.threadPool.enable-customize@ + corePoolSize: @thread.threadPool.core-pool-size@ + maxPoolSize: @thread.threadPool.max-pool-size@ + queueCapacity: @thread.threadPool.queue-capacity@ + keepAliveSeconds: @thread.threadPool.keep-alive-seconds@ + threadNamePrefix: @thread.threadPool.thread-name-prefix@ + rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ \ No newline at end of file diff --git a/epmet-module/oper-crm/oper-crm-server/pom.xml b/epmet-module/oper-crm/oper-crm-server/pom.xml index f972dcffbf..f91fbdafc0 100644 --- a/epmet-module/oper-crm/oper-crm-server/pom.xml +++ b/epmet-module/oper-crm/oper-crm-server/pom.xml @@ -165,6 +165,15 @@ true + + true + 5 + 8 + 20 + 60 + oper-crm + callerRunsPolicy + false @@ -205,6 +214,15 @@ false + + true + 5 + 8 + 20 + 60 + oper-crm + callerRunsPolicy + false @@ -245,6 +263,15 @@ true + + true + 5 + 8 + 20 + 60 + oper-crm + callerRunsPolicy + true @@ -285,6 +312,15 @@ true + + true + 5 + 8 + 20 + 60 + oper-crm + callerRunsPolicy + true diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/resources/bootstrap.yml b/epmet-module/oper-crm/oper-crm-server/src/main/resources/bootstrap.yml index dc81eba455..15bb6eb0be 100644 --- a/epmet-module/oper-crm/oper-crm-server/src/main/resources/bootstrap.yml +++ b/epmet-module/oper-crm/oper-crm-server/src/main/resources/bootstrap.yml @@ -138,3 +138,14 @@ shutdown: graceful: enable: true #是否开启优雅停机 waitTimeSecs: 30 # 优雅停机等待时间,超过30秒,发出告警 + +thread: + # 线程池配置 + threadPool: + enableCustomize: @thread.threadPool.enable-customize@ + corePoolSize: @thread.threadPool.core-pool-size@ + maxPoolSize: @thread.threadPool.max-pool-size@ + queueCapacity: @thread.threadPool.queue-capacity@ + keepAliveSeconds: @thread.threadPool.keep-alive-seconds@ + threadNamePrefix: @thread.threadPool.thread-name-prefix@ + rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/pom.xml b/epmet-module/oper-customize/oper-customize-server/pom.xml index d1e566e165..8ab9300ff5 100644 --- a/epmet-module/oper-customize/oper-customize-server/pom.xml +++ b/epmet-module/oper-customize/oper-customize-server/pom.xml @@ -137,6 +137,15 @@ true + + true + 5 + 8 + 20 + 60 + oper-customize + callerRunsPolicy + false @@ -182,6 +191,15 @@ false + + true + 5 + 8 + 20 + 60 + oper-customize + callerRunsPolicy + false @@ -227,6 +245,15 @@ true + + true + 5 + 8 + 20 + 60 + oper-customize + callerRunsPolicy + true @@ -269,6 +296,15 @@ true + + true + 5 + 8 + 20 + 60 + oper-customize + callerRunsPolicy + true diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/bootstrap.yml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/bootstrap.yml index c5dec6d251..346506fb54 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/resources/bootstrap.yml +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/bootstrap.yml @@ -136,3 +136,14 @@ shutdown: graceful: enable: true #是否开启优雅停机 waitTimeSecs: 30 # 优雅停机等待时间,超过30秒,发出告警 + +thread: + # 线程池配置 + threadPool: + enableCustomize: @thread.threadPool.enable-customize@ + corePoolSize: @thread.threadPool.core-pool-size@ + maxPoolSize: @thread.threadPool.max-pool-size@ + queueCapacity: @thread.threadPool.queue-capacity@ + keepAliveSeconds: @thread.threadPool.keep-alive-seconds@ + threadNamePrefix: @thread.threadPool.thread-name-prefix@ + rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/pom.xml b/epmet-module/resi-group/resi-group-server/pom.xml index 1a1462c00b..bd232b3aac 100644 --- a/epmet-module/resi-group/resi-group-server/pom.xml +++ b/epmet-module/resi-group/resi-group-server/pom.xml @@ -193,11 +193,14 @@ 52d9d9b0e7d0eb5b8b81c205b579e07c https://epmet-dev.elinkservice.cn/api/epmetscan/api - - 5 - 8 - 10 - 30 + + true + 5 + 8 + 20 + 60 + resi-group + callerRunsPolicy @@ -252,11 +255,14 @@ 52d9d9b0e7d0eb5b8b81c205b579e07c https://epmet-dev.elinkservice.cn/api/epmetscan/api - - 5 - 8 - 10 - 30 + + true + 5 + 8 + 20 + 60 + resi-group + callerRunsPolicy @@ -309,11 +315,14 @@ 96d788191a10ff57a125157183413004 https://epmet-dev.elinkservice.cn/api/epmetscan/api - - 5 - 8 - 10 - 30 + + true + 5 + 8 + 20 + 60 + resi-group + callerRunsPolicy @@ -365,11 +374,14 @@ 7ce17f65826539ff3e8616dccd4b70fc https://epmet-open.elinkservice.cn/api/epmetscan/api - - 5 - 8 - 10 - 30 + + true + 5 + 8 + 20 + 60 + resi-group + callerRunsPolicy diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/ResiGroupApplication.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/ResiGroupApplication.java index 0976927df0..eafe96e728 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/ResiGroupApplication.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/ResiGroupApplication.java @@ -13,6 +13,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.ServletComponentScan; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.scheduling.annotation.EnableAsync; /** * 模块 @@ -24,6 +25,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @EnableDiscoveryClient @EnableFeignClients @ServletComponentScan +@EnableAsync public class ResiGroupApplication { public static void main(String[] args) { diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/config/AsyncConfig.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/config/AsyncConfig.java deleted file mode 100644 index 8a1a958939..0000000000 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/config/AsyncConfig.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.epmet.config; - -import com.epmet.properties.ThreadProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -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.ExecutorService; -import java.util.concurrent.ThreadPoolExecutor; - -/** - * 线程池配置类 - */ -@Configuration -@EnableConfigurationProperties(ThreadProperties.class) -@EnableAsync -public class AsyncConfig { - - @Autowired - private ThreadProperties threadProperties; - - @Bean - public Executor executor() { - ThreadProperties.ThreadPoolProperties threadPoolProps = threadProperties.getThreadPool(); - - ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); - executor.setCorePoolSize(threadPoolProps.getCorePoolSize()); - executor.setMaxPoolSize(threadPoolProps.getMaxPoolSize()); - executor.setQueueCapacity(threadPoolProps.getQueueCapacity()); - executor.setThreadNamePrefix("epmet-resi-group-"); - // rejection-policy:当pool已经达到max size的时候,如何处理新任务 - // CALLER_RUNS:不在新线程中执行任务,而是由调用者所在的线程来执行 - executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); //对拒绝task的处理策略 - executor.setKeepAliveSeconds(threadPoolProps.getKeepAlive()); - executor.initialize(); - return executor; - } - - @Bean - public ExecutorService executorService() { - ThreadPoolTaskExecutor executor = (ThreadPoolTaskExecutor) executor(); - return executor.getThreadPoolExecutor(); - } - -} diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/bootstrap.yml b/epmet-module/resi-group/resi-group-server/src/main/resources/bootstrap.yml index 3e553a5364..e9a8edafd3 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/bootstrap.yml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/bootstrap.yml @@ -144,10 +144,13 @@ openapi: thread: # 线程池配置 threadPool: - corePoolSize: @thread.pool.core-pool-size@ - maxPoolSize: @thread.pool.max-pool-size@ - queueCapacity: @thread.pool.queue-capacity@ - keepAlive: @thread.pool.keep-alive@ + enableCustomize: @thread.threadPool.enable-customize@ + corePoolSize: @thread.threadPool.core-pool-size@ + maxPoolSize: @thread.threadPool.max-pool-size@ + queueCapacity: @thread.threadPool.queue-capacity@ + keepAliveSeconds: @thread.threadPool.keep-alive-seconds@ + threadNamePrefix: @thread.threadPool.thread-name-prefix@ + rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ dingTalk: diff --git a/epmet-openapi/epmet-openapi-scan/pom.xml b/epmet-openapi/epmet-openapi-scan/pom.xml index 289dd8a2f9..df86510504 100644 --- a/epmet-openapi/epmet-openapi-scan/pom.xml +++ b/epmet-openapi/epmet-openapi-scan/pom.xml @@ -107,6 +107,15 @@ true + + true + 5 + 8 + 20 + 60 + epmet-openapi-scan + callerRunsPolicy + https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4 @@ -142,6 +151,15 @@ false + + true + 5 + 8 + 20 + 60 + epmet-openapi-scan + callerRunsPolicy + https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4 @@ -172,6 +190,15 @@ true + + true + 5 + 8 + 20 + 60 + epmet-openapi-scan + callerRunsPolicy + https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4 @@ -207,6 +234,14 @@ true + + true + 5 + 8 + 20 + 60 + epmet-openapi-scan + callerRunsPolicy diff --git a/epmet-openapi/epmet-openapi-scan/src/main/resources/bootstrap.yml b/epmet-openapi/epmet-openapi-scan/src/main/resources/bootstrap.yml index 07a611bc39..108c714da6 100644 --- a/epmet-openapi/epmet-openapi-scan/src/main/resources/bootstrap.yml +++ b/epmet-openapi/epmet-openapi-scan/src/main/resources/bootstrap.yml @@ -91,3 +91,14 @@ shutdown: enable: true #是否开启优雅停机 waitTimeSecs: 30 # 优雅停机等待时间,超过30秒,发出告警 +thread: + # 线程池配置 + threadPool: + enableCustomize: @thread.threadPool.enable-customize@ + corePoolSize: @thread.threadPool.core-pool-size@ + maxPoolSize: @thread.threadPool.max-pool-size@ + queueCapacity: @thread.threadPool.queue-capacity@ + keepAliveSeconds: @thread.threadPool.keep-alive-seconds@ + threadNamePrefix: @thread.threadPool.thread-name-prefix@ + rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ + diff --git a/epmet-user/epmet-user-server/pom.xml b/epmet-user/epmet-user-server/pom.xml index 8d021ca7a8..d33a909620 100644 --- a/epmet-user/epmet-user-server/pom.xml +++ b/epmet-user/epmet-user-server/pom.xml @@ -231,6 +231,15 @@ true 192.168.1.140:9876;192.168.1.141:9876 + + + true + 5 + 8 + 10 + 60 + epmet-user + callerRunsPolicy @@ -276,6 +285,15 @@ false 192.168.1.140:9876;192.168.1.141:9876 + + + true + 5 + 8 + 10 + 60 + epmet-user + callerRunsPolicy @@ -320,6 +338,15 @@ true 192.168.10.161:9876 + + + true + 5 + 8 + 10 + 60 + epmet-user + callerRunsPolicy @@ -363,6 +390,15 @@ true 192.168.11.187:9876;192.168.11.184:9876 + + + true + 5 + 8 + 10 + 60 + epmet-user + callerRunsPolicy diff --git a/epmet-user/epmet-user-server/src/main/resources/bootstrap.yml b/epmet-user/epmet-user-server/src/main/resources/bootstrap.yml index cce9a52831..37b078e18f 100644 --- a/epmet-user/epmet-user-server/src/main/resources/bootstrap.yml +++ b/epmet-user/epmet-user-server/src/main/resources/bootstrap.yml @@ -165,3 +165,14 @@ shutdown: graceful: enable: true #是否开启优雅停机 waitTimeSecs: 30 # 优雅停机等待时间,超过30秒,发出告警 + +thread: + # 线程池配置 + threadPool: + enableCustomize: @thread.threadPool.enable-customize@ + corePoolSize: @thread.threadPool.core-pool-size@ + maxPoolSize: @thread.threadPool.max-pool-size@ + queueCapacity: @thread.threadPool.queue-capacity@ + keepAliveSeconds: @thread.threadPool.keep-alive-seconds@ + threadNamePrefix: @thread.threadPool.thread-name-prefix@ + rejectedExecutionHandler: @thread.threadPool.rejected-execution-handler@ \ No newline at end of file From 64787e6ef80844009551a6acb30b157b3ce3936b Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Wed, 2 Mar 2022 10:02:27 +0800 Subject: [PATCH 2/3] =?UTF-8?q?calCpcPartyAbilityV2=E8=AF=95=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dto/extract/UserGroupIdDTO.java | 13 + .../com/epmet/controller/DemoController.java | 24 +- .../extract/FactOriginGroupMainDailyDao.java | 3 + .../dataToIndex/CalCpcIndexService.java | 5 +- .../impl/CalCpcIndexServiceImpl.java | 256 +++++++++++++++++- .../FactOriginGroupMainDailyService.java | 7 + .../FactOriginGroupMainDailyServiceImpl.java | 13 +- .../extract/FactOriginGroupMainDailyDao.xml | 18 ++ 8 files changed, 323 insertions(+), 16 deletions(-) create mode 100644 epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/UserGroupIdDTO.java diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/UserGroupIdDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/UserGroupIdDTO.java new file mode 100644 index 0000000000..854a000fde --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/UserGroupIdDTO.java @@ -0,0 +1,13 @@ +package com.epmet.dto.extract; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + + +@Data +public class UserGroupIdDTO implements Serializable { + private String userId; + private List groupIdList; +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java index a0abb1b2e2..84cb0c6964 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java @@ -54,7 +54,6 @@ import com.epmet.service.stats.DimAgencyService; import com.epmet.service.stats.DimCustomerPartymemberService; import com.epmet.service.stats.DimCustomerService; import com.epmet.util.DimIdGenerator; -import com.google.common.util.concurrent.ThreadFactoryBuilder; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -65,7 +64,9 @@ import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.*; -import java.util.concurrent.*; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Future; @RequestMapping("demo") @RestController @@ -620,20 +621,23 @@ public class DemoController { private CalCpcIndexService calCpcIndexService; @PostMapping("calCpcPartyAbility") - public Result calCpcPartyAbility(@RequestParam("customerId") String customerId, @RequestParam("monthId")String monthId) { + public Result calCpcPartyAbility(@RequestParam("customerId") String customerId, @RequestParam("monthId") String monthId) { + long startCpc = System.currentTimeMillis(); if (StringUtils.isNotBlank(customerId) && StringUtils.isNotBlank(monthId)) { - calCpcIndexService.calCpcPartyAbility(customerId,monthId); - }else{ + calCpcIndexService.calCpcPartyAbilityV2(customerId, monthId); + // calCpcIndexService.calCpcPartyAbility(customerId, monthId); + } else { QueryWrapper customerEntityQueryWrapper = new QueryWrapper<>(); - List customerEntityList=dimCustomerDao.selectList(customerEntityQueryWrapper); + List customerEntityList = dimCustomerDao.selectList(customerEntityQueryWrapper); QueryWrapper wrapper = new QueryWrapper<>(); - List dimMonthEntityList= dimMonthDao.selectList(wrapper); - for(DimCustomerEntity customerEntity:customerEntityList){ - for(DimMonthEntity monthEntity:dimMonthEntityList) { - calCpcIndexService.calCpcPartyAbility(customerEntity.getId(),monthEntity.getId()); + List dimMonthEntityList = dimMonthDao.selectList(wrapper); + for (DimCustomerEntity customerEntity : customerEntityList) { + for (DimMonthEntity monthEntity : dimMonthEntityList) { + calCpcIndexService.calCpcPartyAbilityV2(customerEntity.getId(), monthEntity.getId()); } } } + log.error("手动调用党员相关-党建能力执行完毕======总耗时:{}ms,customerId:{}", System.currentTimeMillis() - startCpc, customerId); return new Result(); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginGroupMainDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginGroupMainDailyDao.java index 1533d70143..c4f3f8f231 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginGroupMainDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginGroupMainDailyDao.java @@ -19,6 +19,7 @@ package com.epmet.dao.evaluationindex.extract; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.extract.FactOriginGroupMainDailyDTO; +import com.epmet.dto.extract.UserGroupIdDTO; import com.epmet.dto.extract.form.GridHeartedFormDTO; import com.epmet.dto.extract.form.ScreenPartyLinkMassesDataFormDTO; import com.epmet.dto.extract.result.GridGroupUserCountResultDTO; @@ -225,4 +226,6 @@ public interface FactOriginGroupMainDailyDao extends BaseDao */ List selectPartyMemberGroupStaticByGrid(@Param("customerId") String customerId, @Param("dateId") String dateId); + + List selectGroupAndLeader(String customerId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/CalCpcIndexService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/CalCpcIndexService.java index cb9552dd4d..48cf376478 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/CalCpcIndexService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/CalCpcIndexService.java @@ -1,7 +1,5 @@ package com.epmet.service.evaluationindex.extract.dataToIndex; -import java.util.Map; - /** * 党员相关 * @@ -18,4 +16,7 @@ public interface CalCpcIndexService { * @Date 2020/9/17 14:08 **/ void calCpcPartyAbility(String customerId, String monthId); + + + void calCpcPartyAbilityV2(String customerId, String monthId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalCpcIndexServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalCpcIndexServiceImpl.java index b78ebc1588..817c412a3a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalCpcIndexServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalCpcIndexServiceImpl.java @@ -1,7 +1,10 @@ package com.epmet.service.evaluationindex.extract.dataToIndex.impl; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.ExceptionUtils; +import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.DateUtils; +import com.epmet.dto.extract.UserGroupIdDTO; import com.epmet.dto.indexcollect.result.CpcIndexCommonDTO; import com.epmet.entity.evaluationindex.indexcoll.FactIndexPartyAblityCpcMonthlyEntity; import com.epmet.service.evaluationindex.extract.dataToIndex.CalCpcIndexService; @@ -9,8 +12,10 @@ import com.epmet.service.evaluationindex.extract.todata.*; import com.epmet.service.evaluationindex.indexcoll.FactIndexPartyAblityCpcMonthlyService; import com.epmet.service.group.GroupDataService; import com.epmet.service.stats.DimCustomerPartymemberService; +import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.MapUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -20,6 +25,8 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.CompletableFuture; +import java.util.stream.Collectors; /** * 党员相关 @@ -78,6 +85,7 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { Map joinThreeMeetsCountMap=calJoinThreeMeetsCount(customerId,monthId); //可以先查询出每个党员的 自建群 + //todo Map> userCreatedGroups = queryUserCreatedGroups(customerId, indexPartyAblityCpcList); //6、党员自建群群众人数 :和评价周期无关 Map groupUserCountMap = calgroupUserCount(customerId, monthId, indexPartyAblityCpcList, userCreatedGroups); @@ -134,6 +142,237 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { factIndexPartyAblityCpcMonthlyService.delAndSavePartyAblityCpcMonthly(customerId,monthId,indexPartyAblityCpcList); } + @Override + public void calCpcPartyAbilityV2(String customerId, String monthId) { + //1、构造初始值 当前客户下所有的党员 + List indexPartyAblityCpcList = dimCustomerPartymemberService.selectPartyMemberList(customerId); + if (CollectionUtils.isEmpty(indexPartyAblityCpcList)) { + log.info("dim_customer_partymember do not any records customerId=" + customerId); + return; + } + + //可以先查询出每个党员的 自建群 + Map> userCreatedGroups = queryUserCreatedGroups(customerId, indexPartyAblityCpcList); + + CompletableFuture> createTopicCountFuture = CompletableFuture.supplyAsync(() -> { + return calCreateTopicCount(customerId, monthId); + }); + + CompletableFuture> joinTopicCountFuture = CompletableFuture.supplyAsync(() -> { + return calJoinTopicCount(customerId, monthId); + }); + + CompletableFuture> shiftIssueCountFuture = CompletableFuture.supplyAsync(() -> { + return calShiftIssueCount(customerId, monthId); + }); + + CompletableFuture> shiftProjectCountFuture = CompletableFuture.supplyAsync(() -> { + return calShiftProjectCount(customerId, monthId); + }); + + CompletableFuture> joinThreeMeetsCountFuture = CompletableFuture.supplyAsync(() -> { + return calJoinThreeMeetsCount(customerId, monthId); + }); + + + CompletableFuture> groupUserCountFuture = CompletableFuture.supplyAsync(() -> { + return calgroupUserCount(customerId, monthId, indexPartyAblityCpcList, userCreatedGroups); + }); + + + CompletableFuture> groupActiveUserCountFuture = CompletableFuture.supplyAsync(() -> { + return calGroupActiveUserCount(customerId, monthId, indexPartyAblityCpcList, userCreatedGroups); + }); + + + CompletableFuture> groupTopicCountFuture = CompletableFuture.supplyAsync(() -> { + return calGroupTopicCount(customerId, monthId); + }); + + + CompletableFuture> topicToIssueRatioFuture = CompletableFuture.supplyAsync(() -> { + return caltopicToIssueRatio(customerId, monthId, indexPartyAblityCpcList, userCreatedGroups); + }); + + Map createTopicCountMap = new HashMap<>(); + Map joinTopicCountMap = new HashMap<>(); + Map shiftIssueCountMap = new HashMap<>(); + Map shiftProjectCountMap = new HashMap<>(); + Map joinThreeMeetsCountMap = new HashMap<>(); + Map groupUserCountMap = new HashMap<>(); + Map groupActiveUserCountMap = new HashMap<>(); + Map groupTopicCountMap = new HashMap<>(); + Map topicToIssueRatioMap = new HashMap<>(); + try { + //1、党员提出话题数 + createTopicCountMap = createTopicCountFuture.get(); + } catch (Exception e) { + log.error("党员相关-党建能力原始指标值【党员提出话题数】计算异常:{}", ExceptionUtils.getErrorStackTrace(e)); + } + + try{ + //2、党员参与话题数(支持、反对、评论、浏览)---目前只统计 党员评论话题次数之和 + joinTopicCountMap = joinTopicCountFuture.get(); + } catch (Exception e) { + log.error("党员相关-党建能力原始指标值【党员参与话题数】计算异常:{}", ExceptionUtils.getErrorStackTrace(e)); + } + try{ + //3、党员提出的话题转议题数 + shiftIssueCountMap = shiftIssueCountFuture.get(); + + } catch (Exception e) { + log.error("党员相关-党建能力原始指标值【党员提出的话题转议题数】计算异常:{}", ExceptionUtils.getErrorStackTrace(e)); + } + try{ + //4、党员提出的议题转项目数 + shiftProjectCountMap = shiftProjectCountFuture.get(); + } catch (Exception e) { + log.error("党员相关-党建能力原始指标值【党员提出的议题转项目数】计算异常:{}", ExceptionUtils.getErrorStackTrace(e)); + } + try{ + //5、参加“三会一课”次数 默认0 :当前用户在本月内活动签到次数 限制活动分类编码100001 三会一课 + joinThreeMeetsCountMap = joinThreeMeetsCountFuture.get(); + } catch (Exception e) { + log.error("党员相关-党建能力原始指标值【参加“三会一课”次数】计算异常:{}", ExceptionUtils.getErrorStackTrace(e)); + } + try{ + //6、党员自建群群众人数 :和评价周期无关 + groupUserCountMap = groupUserCountFuture.get(); + } catch (Exception e) { + log.error("党员相关-党建能力原始指标值【党员自建群群众人数】计算异常:{}", ExceptionUtils.getErrorStackTrace(e)); + } + try{ + //7、党员自建群活跃群众人数 + groupActiveUserCountMap = groupActiveUserCountFuture.get(); + } catch (Exception e) { + log.error("党员相关-党建能力原始指标值【党员自建群活跃群众人数】计算异常:{}", ExceptionUtils.getErrorStackTrace(e)); + } + try{ + //8、党员自建群活跃度——话题数:从话题表中统计党员自建群i的话题总数;对所有自建群话题数累加。 + groupTopicCountMap = groupTopicCountFuture.get(); + } catch (Exception e) { + log.error("党员相关-党建能力原始指标值【党员自建群活跃度】计算异常:{}", ExceptionUtils.getErrorStackTrace(e)); + } + + try{ + //9、自建群活跃度——议题转项目率 + topicToIssueRatioMap = topicToIssueRatioFuture.get(); + } catch (Exception e) { + log.error("党员相关-党建能力原始指标值【自建群活跃度】计算异常:{}", ExceptionUtils.getErrorStackTrace(e)); + } + + List list = new ArrayList<>(); + List> partionList = Lists.partition(indexPartyAblityCpcList, 200); + List>> entityFutures = new ArrayList<>(); + //2、计算实际值,更新 + for (List partList : partionList) { + String quarterId = DateUtils.getQuarterId(monthId); + String yearId = DateUtils.getYearId(monthId); + Map finalCreateTopicCountMap = createTopicCountMap; + Map finalJoinTopicCountMap = joinTopicCountMap; + Map finalShiftIssueCountMap = shiftIssueCountMap; + Map finalShiftProjectCountMap = shiftProjectCountMap; + Map finalJoinThreeMeetsCountMap = joinThreeMeetsCountMap; + Map finalGroupUserCountMap = groupUserCountMap; + Map finalGroupActiveUserCountMap = groupActiveUserCountMap; + Map finalGroupTopicCountMap = groupTopicCountMap; + Map finalTopicToIssueRatioMap = topicToIssueRatioMap; + //目前平阴2100多个党员,200个一组,开一个线程 + CompletableFuture> future = CompletableFuture.supplyAsync(() -> { + return constructEntity(monthId, + quarterId, + yearId, + partList, + finalCreateTopicCountMap, + finalJoinTopicCountMap, + finalShiftIssueCountMap, + finalShiftProjectCountMap, + finalJoinThreeMeetsCountMap, + finalGroupUserCountMap, + finalGroupActiveUserCountMap, + finalGroupTopicCountMap, + finalTopicToIssueRatioMap); + }); + + entityFutures.add(future); + } + + for (CompletableFuture> entityFuture : entityFutures) { + try { + List partList = entityFuture.get(); + list.addAll(partList); + } catch (InterruptedException e) { + log.error("党员相关-党建能力原始指标构造异常:{}", ExceptionUtils.getErrorStackTrace(e)); + } catch (Exception e) { + log.error("党员相关-党建能力原始指标构造异常:{}", ExceptionUtils.getErrorStackTrace(e)); + } + } + //3、删除之前统计过的、批插入批量插入 + factIndexPartyAblityCpcMonthlyService.delAndSavePartyAblityCpcMonthly(customerId, monthId, list); + } + + + private List constructEntity(String monthId, + String quarterId, + String yearId, + List partList, + Map createTopicCountMap, + Map joinTopicCountMap, + Map shiftIssueCountMap, + Map shiftProjectCountMap, + Map joinThreeMeetsCountMap, + Map groupUserCountMap, + Map groupActiveUserCountMap, + Map groupTopicCountMap, + Map topicToIssueRatioMap) { + List resultList = new ArrayList<>(); + for (FactIndexPartyAblityCpcMonthlyEntity temp : partList) { + FactIndexPartyAblityCpcMonthlyEntity indexPartyAblityCpcEntity = ConvertUtils.sourceToTarget(temp, FactIndexPartyAblityCpcMonthlyEntity.class); + indexPartyAblityCpcEntity.setMonthId(monthId); + indexPartyAblityCpcEntity.setQuarterId(quarterId); + indexPartyAblityCpcEntity.setYearId(yearId); + //1、党员提出话题数 + if (MapUtils.isNotEmpty(createTopicCountMap) && createTopicCountMap.containsKey(indexPartyAblityCpcEntity.getUserId())) { + indexPartyAblityCpcEntity.setCreateTopicCount(createTopicCountMap.get(indexPartyAblityCpcEntity.getUserId())); + } + //2、党员参与话题数(支持、反对、评论、浏览)---目前只统计 党员评论话题次数之和 + if (MapUtils.isNotEmpty(joinTopicCountMap) && joinTopicCountMap.containsKey(indexPartyAblityCpcEntity.getUserId())) { + indexPartyAblityCpcEntity.setJoinTopicCount(joinTopicCountMap.get(indexPartyAblityCpcEntity.getUserId())); + } + //3、党员提出的话题转议题数 + if (MapUtils.isNotEmpty(shiftIssueCountMap) && shiftIssueCountMap.containsKey(indexPartyAblityCpcEntity.getUserId())) { + indexPartyAblityCpcEntity.setShiftIssueCount(shiftIssueCountMap.get(indexPartyAblityCpcEntity.getUserId())); + } + //4、党员提出的议题转项目数 + if (MapUtils.isNotEmpty(shiftProjectCountMap) && shiftProjectCountMap.containsKey(indexPartyAblityCpcEntity.getUserId())) { + indexPartyAblityCpcEntity.setShiftProjectCount(shiftProjectCountMap.get(indexPartyAblityCpcEntity.getUserId())); + } + //5、参加“三会一课”次数 目前没有此业务,默认0 : 当前用户在本月内活动签到次数 限制活动分类编码100001 三会一课 + if (MapUtils.isNotEmpty(joinThreeMeetsCountMap) && joinThreeMeetsCountMap.containsKey(indexPartyAblityCpcEntity.getUserId())) { + indexPartyAblityCpcEntity.setJoinThreeMeetsCount(joinThreeMeetsCountMap.get(indexPartyAblityCpcEntity.getUserId())); + } + //6、党员自建群群众人数 + if (MapUtils.isNotEmpty(groupUserCountMap) && groupUserCountMap.containsKey(indexPartyAblityCpcEntity.getUserId())) { + indexPartyAblityCpcEntity.setGroupUserCount(groupUserCountMap.get(indexPartyAblityCpcEntity.getUserId())); + } + //7、党员自建群活跃群众人数 + if (MapUtils.isNotEmpty(groupActiveUserCountMap) && groupActiveUserCountMap.containsKey(indexPartyAblityCpcEntity.getUserId())) { + indexPartyAblityCpcEntity.setGroupActiveUserCount(groupActiveUserCountMap.get(indexPartyAblityCpcEntity.getUserId())); + } + //8、党员自建群活跃度——话题数 + if (MapUtils.isNotEmpty(groupTopicCountMap) && groupTopicCountMap.containsKey(indexPartyAblityCpcEntity.getUserId())) { + indexPartyAblityCpcEntity.setGroupTopicCount(groupTopicCountMap.get(indexPartyAblityCpcEntity.getUserId())); + } + //9、自建群活跃度——议题转项目率 + if (MapUtils.isNotEmpty(topicToIssueRatioMap) && topicToIssueRatioMap.containsKey(indexPartyAblityCpcEntity.getUserId())) { + indexPartyAblityCpcEntity.setTopicToIssueRatio(topicToIssueRatioMap.get(indexPartyAblityCpcEntity.getUserId())); + } + resultList.add(indexPartyAblityCpcEntity); + } + return resultList; + } + + /** * @param customerId * @param partyMemberList @@ -144,7 +383,7 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { **/ private Map> queryUserCreatedGroups(String customerId, List partyMemberList) { Map> map = new HashMap<>(); - for (FactIndexPartyAblityCpcMonthlyEntity partyMember : partyMemberList) { + /*for (FactIndexPartyAblityCpcMonthlyEntity partyMember : partyMemberList) { //查询当前党员建了多少个组 List groupIdList=factOriginGroupMainDailyService.selectGroupIds(customerId,partyMember.getUserId()); if (CollectionUtils.isEmpty(groupIdList)) { @@ -153,6 +392,17 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { } else { map.put(partyMember.getUserId(), groupIdList); } + }*/ + //查询出所有的小组,按照组长 + List list = factOriginGroupMainDailyService.selectGroupAndLeader(customerId); + Map> userGroupIdMap = list.stream().collect(Collectors.toMap(UserGroupIdDTO::getUserId, UserGroupIdDTO::getGroupIdList)); + for (FactIndexPartyAblityCpcMonthlyEntity partyMember : partyMemberList) { + if (MapUtils.isEmpty(userGroupIdMap) || !userGroupIdMap.containsKey(partyMember.getUserId())) { + map.put(partyMember.getUserId(), new ArrayList<>()); + continue; + } else { + map.put(partyMember.getUserId(), userGroupIdMap.get(partyMember.getUserId())); + } } return map; } @@ -265,7 +515,7 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { //查询当前党员建了多少个组 List groupIdList = userCreatedGroups.get(partyMember.getUserId()); if (CollectionUtils.isEmpty(groupIdList)) { - log.info("当前党员userId="+partyMember.getUserId()+"没有创建过小组, 【党员相关-党员自建群群众人数】赋值0"); + // log.info("当前党员userId="+partyMember.getUserId()+"没有创建过小组, 【党员相关-党员自建群群众人数】赋值0"); map.put(partyMember.getUserId(), NumConstant.ZERO); continue; } @@ -311,7 +561,7 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { //1、查询当前党员建了多少个组 List groupIdList = userCreatedGroups.get(partyMember.getUserId()); if (CollectionUtils.isEmpty(groupIdList)) { - log.warn("当前党员userId="+partyMember.getUserId()+"没有创建过小组, 【党员相关-党员自建群活跃群众人数】赋值0"); + // log.warn("当前党员userId="+partyMember.getUserId()+"没有创建过小组, 【党员相关-党员自建群活跃群众人数】赋值0"); map.put(partyMember.getUserId(), NumConstant.ZERO); continue; } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginGroupMainDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginGroupMainDailyService.java index 89beadf503..6b88a66d94 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginGroupMainDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginGroupMainDailyService.java @@ -19,6 +19,7 @@ package com.epmet.service.evaluationindex.extract.todata; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.dto.extract.FactOriginGroupMainDailyDTO; +import com.epmet.dto.extract.UserGroupIdDTO; import com.epmet.dto.extract.form.ScreenPartyLinkMassesDataFormDTO; import com.epmet.dto.extract.result.GridGroupUserCountResultDTO; import com.epmet.dto.extract.result.OrgStatisticsResultDTO; @@ -125,4 +126,10 @@ public interface FactOriginGroupMainDailyService extends BaseService getPartyMemberGroupStatic(String customerId, String dateId, String type); + /** + * 查询出小组id ,组长userId + * @param customerId + * @return + */ + List selectGroupAndLeader(String customerId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginGroupMainDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginGroupMainDailyServiceImpl.java index 164b0b76dc..05c0720986 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginGroupMainDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginGroupMainDailyServiceImpl.java @@ -22,8 +22,8 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.constant.OrgTypeConstant; import com.epmet.dao.evaluationindex.extract.FactOriginGroupMainDailyDao; -import com.epmet.dao.evaluationindex.extract.FactOriginGroupMemberDailyDao; import com.epmet.dto.extract.FactOriginGroupMainDailyDTO; +import com.epmet.dto.extract.UserGroupIdDTO; import com.epmet.dto.extract.form.ScreenPartyLinkMassesDataFormDTO; import com.epmet.dto.extract.result.GridGroupUserCountResultDTO; import com.epmet.dto.extract.result.OrgStatisticsResultDTO; @@ -198,4 +198,15 @@ public class FactOriginGroupMainDailyServiceImpl extends BaseServiceImpl selectGroupAndLeader(String customerId) { + return baseDao.selectGroupAndLeader(customerId); + } + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml index c8c672e57f..4b4e709722 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml @@ -382,4 +382,22 @@ GRID_ID + + + + + + + + + + From d5bca533c53c903a40ba5141594a924fd0afb615 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Wed, 2 Mar 2022 10:04:37 +0800 Subject: [PATCH 3/3] =?UTF-8?q?calCpcPartyAbilityV2=E8=AF=95=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/dataToIndex/impl/CalCpcIndexServiceImpl.java | 1 - 1 file changed, 1 deletion(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalCpcIndexServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalCpcIndexServiceImpl.java index 817c412a3a..7694f0cb87 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalCpcIndexServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalCpcIndexServiceImpl.java @@ -85,7 +85,6 @@ public class CalCpcIndexServiceImpl implements CalCpcIndexService { Map joinThreeMeetsCountMap=calJoinThreeMeetsCount(customerId,monthId); //可以先查询出每个党员的 自建群 - //todo Map> userCreatedGroups = queryUserCreatedGroups(customerId, indexPartyAblityCpcList); //6、党员自建群群众人数 :和评价周期无关 Map groupUserCountMap = calgroupUserCount(customerId, monthId, indexPartyAblityCpcList, userCreatedGroups);