Browse Source

定时任务改异步

storyxc 2 years ago
parent
commit
7bce8998bb

+ 2 - 0
gaudi-service/src/main/java/com/jianxun/gaudi/GaudiServiceApplication.java

@@ -7,6 +7,7 @@ import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.data.redis.connection.RedisConnectionFactory;
 import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
 
@@ -14,6 +15,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
 @EnableTransactionManagement
 @MapperScan("com.jianxun.gaudi.*.dao")
 @EnableScheduling
+@EnableAsync
 public class GaudiServiceApplication 
 {
 	@Bean

+ 2 - 0
gaudi-service/src/main/java/com/jianxun/gaudi/qs/scheduler/OverdueOrderTask.java

@@ -4,6 +4,7 @@ import com.jianxun.gaudi.qs.service.impl.QuestionnaireSurveyServiceImpl;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
@@ -17,6 +18,7 @@ public class OverdueOrderTask  {
     @Autowired
     QuestionnaireSurveyServiceImpl questionnaireSurveyService;
     @Scheduled(cron = "0 */1 * * * ?")
+    @Async("myAsync")
     public void myJob(){
         logger.info("\n=============\noverdueOrderTask=====>{}--\n===============\n", LocalDateTime.now());
         logger.info("overdueOrderTask/定时开始自动催收-------");

+ 38 - 0
gaudi-service/src/main/java/com/jianxun/gaudi/qs/scheduler/SchedulerConfig.java

@@ -0,0 +1,38 @@
+package com.jianxun.gaudi.qs.scheduler;
+
+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.ThreadPoolExecutor;
+
+/**
+ * @author xc
+ * @description
+ * @date 2022/7/6 18:26
+ */
+@Configuration
+public class SchedulerConfig {
+
+    @Bean("myAsync")
+    public Executor myAsync() {
+        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
+        // 最大线程数
+        executor.setMaxPoolSize(20);
+        // 核心线程数
+        executor.setCorePoolSize(20);
+        // 任务队列的大小
+        executor.setQueueCapacity(100);
+        // 线程前缀名
+        executor.setThreadNamePrefix("New-Thread-");
+        // 线程存活时间
+        executor.setKeepAliveSeconds(60);
+        // 拒绝处理策略:直接抛出异常
+        executor.setRejectedExecutionHandler(new ThreadPoolExecutor.AbortPolicy() {
+        });
+        // 线程初始化
+        executor.initialize();
+        return executor;
+    }
+}