Browse Source

处理线程池的数据库连接问题

lixing 2 years ago
parent
commit
2490e62e77

+ 1 - 5
src/main/java/com/persagy/apm/alarmservice/group/alarmrule/controller/GroupAlarmRuleController.java

@@ -1,9 +1,5 @@
 package com.persagy.apm.alarmservice.group.alarmrule.controller;
 
-import com.persagy.apm.alarmservice.project.alarmcondition.model.AlarmCondition;
-import com.persagy.apm.alarmservice.project.alarmcondition.model.ConvertAlarmConditionTool;
-import com.persagy.apm.alarmservice.project.alarmcondition.model.vo.AlarmConditionItemVO;
-import com.persagy.apm.alarmservice.project.alarmcondition.service.IAlarmConditionService;
 import com.persagy.apm.alarmservice.group.alarmrule.dao.GroupAlarmRuleMapper;
 import com.persagy.apm.alarmservice.group.alarmrule.model.ConvertGroupAlarmRuleTool;
 import com.persagy.apm.alarmservice.group.alarmrule.model.GroupAlarmRule;
@@ -11,6 +7,7 @@ import com.persagy.apm.alarmservice.group.alarmrule.model.dto.*;
 import com.persagy.apm.alarmservice.group.alarmrule.model.vo.GroupAlarmRuleItemVO;
 import com.persagy.apm.alarmservice.group.alarmrule.model.vo.GroupAlarmRuleListItemVO;
 import com.persagy.apm.alarmservice.group.alarmrule.service.IGroupAlarmRuleService;
+import com.persagy.apm.alarmservice.project.alarmcondition.service.IAlarmConditionService;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.service.IProjectAlarmRuleObjRelService;
 import com.persagy.apm.common.model.vo.SimpleObjVO;
 import com.persagy.apm.common.response.ApmResponseUpsertVO;
@@ -38,7 +35,6 @@ import springfox.documentation.annotations.ApiIgnore;
 import javax.validation.Valid;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Map;
 import java.util.stream.Collectors;
 
 /**

+ 3 - 3
src/main/java/com/persagy/apm/alarmservice/group/alarmrule/service/IGroupAlarmRuleService.java

@@ -1,12 +1,12 @@
 package com.persagy.apm.alarmservice.group.alarmrule.service;
 
-import com.persagy.apm.alarmservice.group.alarmrule.model.*;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.persagy.apm.alarmservice.group.alarmrule.model.GroupAlarmRule;
 import com.persagy.apm.alarmservice.group.alarmrule.model.dto.*;
+import com.persagy.apm.alarmservice.group.management.model.equip.vo.EquipItem;
 
 import java.io.IOException;
 import java.util.List;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.persagy.apm.alarmservice.group.management.model.equip.vo.EquipItem;
 
 /**
  * 集团报警规则(GroupAlarmRule) service接口

+ 9 - 0
src/main/java/com/persagy/apm/alarmservice/group/alarmrule/service/impl/GroupAlarmRuleServiceImpl.java

@@ -31,6 +31,7 @@ import com.persagy.apm.energyalarmstarter.alarmdata.model.dto.alarmconfig.Delete
 import com.persagy.apm.energyalarmstarter.alarmdata.model.dto.alarmconfig.QueryAlarmConfigDTO;
 import com.persagy.apm.energyalarmstarter.alarmdata.model.vo.AlarmConfigItem;
 import com.persagy.apm.energyalarmstarter.alarmdata.service.AlarmConfigServiceImpl;
+import com.persagy.apm.mybatis.handler.DynamicDataSourceHandler;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
 import org.apache.poi.ss.usermodel.DataFormatter;
@@ -43,6 +44,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
+import javax.servlet.http.HttpServletRequest;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
@@ -74,6 +76,10 @@ public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper,
     private GroupManagementServiceImpl groupManagementService;
     @Autowired
     private IProjectAlarmRuleObjRelService projectAlarmRuleObjRelService;
+    @Autowired
+    private DynamicDataSourceHandler dynamicDataSourceHandler;
+    @Autowired
+    private HttpServletRequest request;
 
     ExecutorService executor = ExecutorBuilder.create()
             .setCorePoolSize(5)
@@ -108,6 +114,7 @@ public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper,
         executor.execute(() -> {
             // 切换线程需要重新设置线程中的通用变量
             PoemsContext.setContext(userId, loginDevice, pd, groupCode, projectId);
+            dynamicDataSourceHandler.resetDataSource(request);
             projectAlarmRuleService.addProjectAlarmRules(addGroupAlarmRuleDTO);
         });
 
@@ -394,6 +401,7 @@ public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper,
         PoemsContextContent context = PoemsContext.getContext();
         executor.execute(() -> {
             PoemsContext.setContext(context);
+            dynamicDataSourceHandler.resetDataSource(request);
             try {
                 projectAlarmRuleService.deleteBatchByGroupRule(groupAlarmRule);
                 String condition = deleteGroupAlarmRuleDTO.getCondition();
@@ -513,6 +521,7 @@ public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper,
         executor.execute(() -> {
             // 切换线程需要重新设置线程中的通用变量
             PoemsContext.setContext(userId, loginDevice, pd, groupCode, projectId);
+            dynamicDataSourceHandler.resetDataSource(request);
             projectAlarmRuleService.addProjectAlarmRulesPM(addGroupAlarmRuleDTO);
         });