Bläddra i källkod

Merge branch 'dev'
merge

wangliang 4 år sedan
förälder
incheckning
bd273400cf

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/OrgCenterDataDisposeService.java

@@ -11,6 +11,6 @@ import java.io.IOException;
  */
 public interface OrgCenterDataDisposeService {
 
-    @Async
+    @Async("arbitrateThreadPool")
     void updateSchoolInfo() throws IOException;
 }

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TBTaskService.java

@@ -144,6 +144,6 @@ public interface TBTaskService extends IService<TBTask> {
     /**
      * 更新任务状态
      */
-    @Async
+    @Async("arbitrateThreadPool")
     public void updateStatus();
 }

+ 3 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicCourseServiceImpl.java

@@ -12,6 +12,7 @@ import com.qmth.distributed.print.business.mapper.BasicCourseMapper;
 import com.qmth.distributed.print.business.service.BasicCourseService;
 import com.qmth.distributed.print.business.service.ExamDetailCourseService;
 import com.qmth.distributed.print.business.service.ExamTaskService;
+import com.qmth.distributed.print.business.util.ConvertUtil;
 import com.qmth.distributed.print.business.util.ServletUtil;
 import com.qmth.distributed.print.common.contant.SystemConstant;
 import com.qmth.distributed.print.common.enums.ExceptionResultEnum;
@@ -45,6 +46,8 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
     @Override
     public IPage<BasicCourse> list(String code, String name, Integer pageNumber, Integer pageSize) {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
+        code = ConvertUtil.translateSpecificSign(code);
+        name = ConvertUtil.translateSpecificSign(name);
         Page<BasicCourse> page = new Page<>(pageNumber, pageSize);
         IPage<BasicCourse> courseIPage = this.baseMapper.listPage(page, schoolId, code, name);
         return courseIPage;

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/create/AsyncCreateTaskTemplete.java

@@ -30,7 +30,7 @@ public abstract class AsyncCreateTaskTemplete extends AsyncImportTaskTemplete {
      * @return
      * @throws IOException
      */
-    @Async
+    @Async("arbitrateThreadPool")
     public Result createPdf(Map<String, Object> map, CallbackCreatePdf callbackCreatePdf) throws IOException {
         return null;
     }

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/export/AsyncExportTaskTemplete.java

@@ -51,7 +51,7 @@ public abstract class AsyncExportTaskTemplete {
      * @param map
      * @return
      */
-    @Async
+    @Async("arbitrateThreadPool")
     public abstract Result exportTask(Map<String, Object> map) throws Exception;
 
     /**

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/importData/AsyncImportTaskTemplete.java

@@ -54,7 +54,7 @@ public abstract class AsyncImportTaskTemplete {
      * @return
      * @throws IOException
      */
-    @Async
+    @Async("arbitrateThreadPool")
     public abstract Result importTask(Map<String, Object> map) throws IOException, Exception;
 
     /**

+ 52 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/threadPool/MyThreadPool.java

@@ -0,0 +1,52 @@
+package com.qmth.distributed.print.business.threadPool;//package com.qmth.themis.business.threadPool;
+
+import com.qmth.distributed.print.common.contant.SystemConstant;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+
+import javax.annotation.PostConstruct;
+import java.util.Objects;
+import java.util.concurrent.Executor;
+import java.util.concurrent.ThreadPoolExecutor;
+
+/**
+ * @Description: 线程池应用配置
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2019/3/21
+ */
+@Configuration
+public class MyThreadPool extends ThreadPoolTaskExecutor {
+
+    public MyThreadPool arbitratePoolTaskExecutor = null;
+
+    @PostConstruct
+    public void init() {
+        arbitrateThreadPool();
+    }
+
+    /**
+     * 仲裁线程池
+     *
+     * @return
+     */
+    @Bean
+    public Executor arbitrateThreadPool() {
+        if (Objects.isNull(arbitratePoolTaskExecutor)) {
+            arbitratePoolTaskExecutor = new MyThreadPool();
+            arbitratePoolTaskExecutor.setCorePoolSize(SystemConstant.THREAD_POOL_CORE_POOL_SIZE);//核心线程数
+            arbitratePoolTaskExecutor.setMaxPoolSize(SystemConstant.THREAD_POOL_MAX_POOL_SIZE);//最大线程数
+            arbitratePoolTaskExecutor.setKeepAliveSeconds(SystemConstant.THREAD_POOL_KEEP_ALIVE_SECONDS);//线程空闲时间
+            arbitratePoolTaskExecutor.setQueueCapacity(SystemConstant.THREAD_POOL_QUEUE_CAPACITY);//队列容量
+            arbitratePoolTaskExecutor.setThreadNamePrefix(SystemConstant.THREAD_POOL_NAME);
+
+            // rejection-policy:当pool已经达到max size的时候,如何处理新任务
+            // CALLER_RUNS:不在新线程中执行任务,而是由调用者所在的线程来执行
+            arbitratePoolTaskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
+            arbitratePoolTaskExecutor.initialize();
+        }
+        return arbitratePoolTaskExecutor;
+    }
+}

+ 18 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/ConvertUtil.java

@@ -260,4 +260,22 @@ public class ConvertUtil {
             throw ExceptionResultEnum.ERROR.exception("[" + name + ":" + str + "]' 超过长度限制 : " + length);
         }
     }
+
+    /**
+     * 模糊查询时调用以去除符号"%","_"特殊字符对查询结果的影响
+     * @param param 要校验的参数
+     * @return 转译后的参数
+     */
+    public static String translateSpecificSign(String param){
+        if (param == null){
+            return null;
+        }
+        if (param.contains("%")){
+            param = param.replaceAll("%","\\\\%");
+        }
+        if (param.contains("_")){
+            param = param.replaceAll("_","\\\\_");
+        }
+        return param;
+    }
 }

+ 9 - 0
distributed-print-common/src/main/java/com/qmth/distributed/print/common/contant/SystemConstant.java

@@ -121,6 +121,15 @@ public class SystemConstant {
     public static String XLSX = "xlsx";
     public static String XLS = "xls";
 
+    /**
+     * 线程池配置
+     */
+    public static final String THREAD_POOL_NAME = "arbitrateThreadPool";
+    public static final int THREAD_POOL_CORE_POOL_SIZE = 10;
+    public static final int THREAD_POOL_MAX_POOL_SIZE = 40;
+    public static final int THREAD_POOL_KEEP_ALIVE_SECONDS = 60;
+    public static final int THREAD_POOL_QUEUE_CAPACITY = 500;
+
     /**
      * 初始化附件文件路径
      */

+ 14 - 0
distributed-print/src/test/java/com/qmth/distributed/print/ServiceTest.java

@@ -1,7 +1,9 @@
 package com.qmth.distributed.print;
 
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qmth.distributed.print.business.bean.result.TemplatePrintInfoResult;
+import com.qmth.distributed.print.business.entity.BasicCourse;
 import com.qmth.distributed.print.business.enums.MessageEnum;
 import com.qmth.distributed.print.business.service.*;
 import com.qmth.distributed.print.business.util.ConvertUtil;
@@ -34,6 +36,8 @@ public class ServiceTest {
     private BasicMessageService basicMessageService;
     @Resource
     private BasicVerifyCodeService basicVerifyCodeService;
+    @Resource
+    private BasicCourseService basicCourseService;
 
 
     @Test
@@ -92,4 +96,14 @@ public class ServiceTest {
         basicVerifyCodeService.sendVeirfyCode("18903719928", 1L);
     }
 
+    @Test
+    public void like(){
+        QueryWrapper<BasicCourse> queryWrapper = new QueryWrapper<>();
+        String name = "_";
+        name = ConvertUtil.translateSpecificSign(name);
+        queryWrapper.lambda().like(BasicCourse::getName,name);
+        List<BasicCourse> basicCourseList = basicCourseService.list(queryWrapper);
+        System.out.println(JSON.toJSONString(basicCourseList));
+    }
+
 }