Browse Source

删除集团报警规则时,异步删除项目报警规则

lixing 3 years ago
parent
commit
8cb80a62c2

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

@@ -23,6 +23,7 @@ import com.persagy.apm.alarmservice.project.alarmruleobjrel.service.IProjectAlar
 import com.persagy.apm.common.constant.enums.ValidEnum;
 import com.persagy.apm.common.context.AppContext;
 import com.persagy.apm.common.context.poems.PoemsContext;
+import com.persagy.apm.common.context.poems.PoemsContextContent;
 import com.persagy.apm.common.model.dto.Sort;
 import com.persagy.apm.energyalarmstarter.alarmdata.feign.DmpResult;
 import com.persagy.apm.energyalarmstarter.alarmdata.model.dto.alarmconfig.BatchDeleteAlarmConfigDTO;
@@ -388,10 +389,19 @@ public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper,
         GroupAlarmRule groupAlarmRule = getById(groupRuleId);
         this.deleteGroupAlarmRule(groupRuleId);
         alarmConditionService.deleteAlarmCondition(deleteGroupAlarmRuleDTO.getAlarmConditionId());
-        projectAlarmRuleService.deleteBatchByGroupRule(groupAlarmRule);
-        String condition = deleteGroupAlarmRuleDTO.getCondition();
-        String classCode = deleteGroupAlarmRuleDTO.getClassCode();
-        deleteEquipCondition(condition, classCode, groupAlarmRule.getAlarmItemCode());
+        // 异步删除项目上的报警规则
+        PoemsContextContent context = PoemsContext.getContext();
+        executor.execute(() -> {
+            PoemsContext.setContext(context);
+            try {
+                projectAlarmRuleService.deleteBatchByGroupRule(groupAlarmRule);
+                String condition = deleteGroupAlarmRuleDTO.getCondition();
+                String classCode = deleteGroupAlarmRuleDTO.getClassCode();
+                deleteEquipCondition(condition, classCode, groupAlarmRule.getAlarmItemCode());
+            } catch (Exception e) {
+                log.error("删除项目报警规则失败", e);
+            }
+        });
     }
 
     @Override