Bladeren bron

分解任务

zhuwei 2 maanden geleden
bovenliggende
commit
21b5084bd4

+ 29 - 0
blade-common/src/main/java/org/springblade/common/utils/AsyncConfig.java

@@ -0,0 +1,29 @@
+package org.springblade.common.utils;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.concurrent.*;
+@Configuration
+public class AsyncConfig {
+
+    /**
+     * cpu 核心数量
+     */
+    public static final int cpuNum = 1 ;//Runtime.getRuntime().availableProcessors();
+
+    /**
+     * 线程池配置
+     * @return
+     */
+    @Bean("taskExecutor1")
+    public ThreadPoolExecutor getAsyncExecutor() {
+        return new ThreadPoolMonitor(cpuNum
+                , 15
+                , 180
+                , TimeUnit.SECONDS
+                , new LinkedBlockingQueue<>(2000)
+                , new ThreadPoolExecutor.DiscardOldestPolicy(), "manager-thread-pool");
+    }
+
+}

+ 28 - 0
blade-common/src/main/java/org/springblade/common/utils/singleEexConfigurerConfig.java

@@ -0,0 +1,28 @@
+package org.springblade.common.utils;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.scheduling.annotation.EnableAsync;
+
+import java.util.concurrent.*;
+
+@Slf4j
+@Configuration
+@EnableAsync
+public class singleEexConfigurerConfig {
+
+    /**
+     * 线程池配置
+     *
+     * @return
+     */
+    @Bean("singleExecutor")
+    @Primary
+    public ExecutorService getSingleExecutor() {
+        log.info("线程池初始化......");
+        return Executors.newSingleThreadExecutor();
+    }
+
+}