Переглянути джерело

优化同步机台接口2(新增异步执行)

wangxuan 9 місяців тому
батько
коміт
d362e86dcd

+ 5 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/ZhcxCommissionCheckDetailService.java

@@ -2,6 +2,9 @@ package com.rongwei.bscommon.sys.service;
 
 import com.rongwei.bsentity.domain.ZhcxCommissionCheckDetailDo;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.scheduling.annotation.Async;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +16,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface ZhcxCommissionCheckDetailService extends IService<ZhcxCommissionCheckDetailDo> {
 
+
+    void saveCheckDetailBatch(List<ZhcxCommissionCheckDetailDo> resultCheckDetailDo);
 }

+ 8 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxCommissionCheckDetailServiceImpl.java

@@ -4,8 +4,11 @@ import com.rongwei.bsentity.domain.ZhcxCommissionCheckDetailDo;
 import com.rongwei.bscommon.sys.dao.ZhcxCommissionCheckDetailDao;
 import com.rongwei.bscommon.sys.service.ZhcxCommissionCheckDetailService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  * 试车检查子表 服务实现类
@@ -17,4 +20,9 @@ import org.springframework.stereotype.Service;
 @Service
 public class ZhcxCommissionCheckDetailServiceImpl extends ServiceImpl<ZhcxCommissionCheckDetailDao, ZhcxCommissionCheckDetailDo> implements ZhcxCommissionCheckDetailService {
 
+    @Override
+    @Async("batchSaveThreadPool")
+    public void saveCheckDetailBatch(List<ZhcxCommissionCheckDetailDo> resultCheckDetailDo) {
+        this.saveBatch(resultCheckDetailDo);
+    }
 }

+ 7 - 1
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxCommissionCheckServiceImpl.java

@@ -31,6 +31,7 @@ import com.rongwei.rwcommonentity.commonservers.domain.SysFileItemDo;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.io.ClassPathResource;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import com.rongwei.rwcommoncomponent.excel.aspose.ExcelExportUtil;
@@ -255,10 +256,15 @@ public class ZhcxCommissionCheckServiceImpl extends ServiceImpl<ZhcxCommissionCh
             }
         }
         if(!resultCheckDetailDo.isEmpty()){
-            commissionCheckDetailService.saveBatch(resultCheckDetailDo);
+            //commissionCheckDetailService.saveBatch(resultCheckDetailDo);
+            commissionCheckDetailService.saveCheckDetailBatch(resultCheckDetailDo);
         }
         return R.ok("同步成功");
     }
+    /*@Async("batchSaveThreadPool")
+    public void saveCheckDetailBatch(List<ZhcxCommissionCheckDetailDo> resultCheckDetailDo) {
+        commissionCheckDetailService.saveBatch(resultCheckDetailDo);
+    }*/
 
     /**
      * 构建一条新的试车检查内容数据

+ 21 - 0
business-server/src/main/java/com/rongwei/bsserver/config/AsyncConfig.java

@@ -0,0 +1,21 @@
+package com.rongwei.bsserver.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+
+@Configuration
+@EnableAsync
+public class AsyncConfig {
+    @Bean("batchSaveThreadPool")
+    public ThreadPoolTaskExecutor batchSaveThreadPool() {
+        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
+        executor.setCorePoolSize(5); // 核心线程数
+        executor.setMaxPoolSize(10); // 最大线程数
+        executor.setQueueCapacity(100); // 队列容量
+        executor.setThreadNamePrefix("batch - save - ");
+        executor.initialize();
+        return executor;
+    }
+}