Parcourir la source

修改定时任务配置,排查iot宕机问题

fuyuchuan il y a 1 jour
Parent
commit
9c532773c9

+ 4 - 4
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/config/DingTalkAndMessage.java

@@ -207,8 +207,8 @@ public class DingTalkAndMessage {
         return sysUserMapper.selectOne(phoneQuery);
     }
 
-    @Async// 异步发送
-//    @Async("asyncServiceExecutor")// 异步发送
+    //@Async// 异步发送
+    @Async("asyncServiceExecutor")// 异步发送
     public void sendDingTalkDailyReport(PmWorkReport workReport, List<PmWorkContent> workContents) {
         String userName = workReport.getCreateBy();
         log.info(userName + "的工作报告开始发送钉钉-----------------------------------");
@@ -303,8 +303,8 @@ public class DingTalkAndMessage {
     }
 
 
-    @Async
-//    @Async("asyncServiceExecutor")
+    //@Async
+    @Async("asyncServiceExecutor")
     public void sendAsyncMessage(PmWorkReport newReport) {
         String username = newReport.getCreateBy();
         Long submitterId = newReport.getSubmitterId();

+ 49 - 49
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/config/ExecutorConfig.java

@@ -1,49 +1,49 @@
-//package com.usky.iot.service.config;
-//
-//import lombok.extern.slf4j.Slf4j;
-//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.ThreadPoolExecutor;
-//
-//@Configuration
-//@EnableAsync
-//@Slf4j
-//public class ExecutorConfig {
-//
-//    /** 核心线程数(默认线程数) */
-//    private int corePoolSize = 10;
-//    /** 最大线程数 */
-//    private int maxPoolSize = 20;
-//    /** 允许线程空闲时间(单位:默认为秒) */
-//    private static final int keepAliveTime = 60;
-//    /** 缓冲队列大小 */
-//    private int queueCapacity = 10;
-//
-//    @Bean(name = "asyncServiceExecutor")
-//    public Executor asyncServiceExecutor(){
-//        log.info("start asyncServiceExecutor++++++++++++++++++++++");
-//        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
-//        //配置核心线程数
-//        executor.setCorePoolSize(corePoolSize);
-//        //配置最大线程数
-//        executor.setMaxPoolSize(maxPoolSize);
-//        //配置空闲时间
-//        executor.setKeepAliveSeconds(keepAliveTime);
-//        //配置队列大小
-//        executor.setQueueCapacity(queueCapacity);
-//        //配置线程前缀名
-//        executor.setThreadNamePrefix("async-service-");
-//
-//        // rejection-policy:当pool已经达到max size的时候,如何处理新任务
-//        // CALLER_RUNS:不在新线程中执行任务,而是有调用者所在的线程来执行
-//        executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
-//
-//        //执行初始化
-//        executor.initialize();
-//        return executor;
-//    }
-//}
+package com.usky.iot.service.config;
+
+import lombok.extern.slf4j.Slf4j;
+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.ThreadPoolExecutor;
+
+@Configuration
+@EnableAsync
+@Slf4j
+public class ExecutorConfig {
+
+   /** 核心线程数(默认线程数) */
+   private int corePoolSize = 10;
+   /** 最大线程数 */
+   private int maxPoolSize = 20;
+   /** 允许线程空闲时间(单位:默认为秒) */
+   private static final int keepAliveTime = 60;
+   /** 缓冲队列大小 */
+   private int queueCapacity = 10;
+
+   @Bean(name = "asyncServiceExecutor")
+   public Executor asyncServiceExecutor(){
+       log.info("start asyncServiceExecutor++++++++++++++++++++++");
+       ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
+       //配置核心线程数
+       executor.setCorePoolSize(corePoolSize);
+       //配置最大线程数
+       executor.setMaxPoolSize(maxPoolSize);
+       //配置空闲时间
+       executor.setKeepAliveSeconds(keepAliveTime);
+       //配置队列大小
+       executor.setQueueCapacity(queueCapacity);
+       //配置线程前缀名
+       executor.setThreadNamePrefix("async-service-");
+
+       // rejection-policy:当pool已经达到max size的时候,如何处理新任务
+       // CALLER_RUNS:不在新线程中执行任务,而是有调用者所在的线程来执行
+       executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
+
+       //执行初始化
+       executor.initialize();
+       return executor;
+   }
+}

+ 1 - 1
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/PmWorkReportServiceImpl.java

@@ -607,7 +607,7 @@ public class PmWorkReportServiceImpl extends AbstractCrudService<PmWorkReportMap
      * @param: [time] 开始时间
      * @return: void
      **/
-    @Async
+    @Async("asyncServiceExecutor")
     @Override
     public void timedSending(LocalDateTime time) {
         log.info("定时报告任务开始---------------------------");