Browse Source

更改rabbit config 更改报警回复添加至mq队列

gaoyu 3 năm trước cách đây
mục cha
commit
66c98861ce

+ 4 - 29
src/main/java/com/persagy/mq/RabbitConfig.java

@@ -2,37 +2,18 @@ package com.persagy.mq;
 
 import org.springframework.amqp.core.Binding;
 import org.springframework.amqp.core.BindingBuilder;
-import org.springframework.amqp.core.Message;
 import org.springframework.amqp.core.Queue;
 import org.springframework.amqp.core.TopicExchange;
-import org.springframework.amqp.rabbit.annotation.RabbitHandler;
-import org.springframework.amqp.rabbit.annotation.RabbitListener;
-import org.springframework.amqp.rabbit.core.RabbitTemplate;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
-import com.persagy.entity.DmpMessage;
-import com.rabbitmq.client.Channel;
-
-import lombok.extern.slf4j.Slf4j;
-
 /**
- * @description:报警定义消息通知
- * @author:LuoGuangyi
- * @company:PersagyTechnologyCo.,Ltd
- * @since:2020/10/20 002016:30
- * @version:V1.0
- **/
-@Slf4j
+ * RabbitConfig
+ * @author gaoyu
+ *
+ */
 @Configuration
 public class RabbitConfig {
-
-	@Autowired
-	public RabbitConfig(RabbitTemplate rabbitTemplate) {
-		rabbitTemplate.convertAndSend(exchange, alarmMsgRoutingKey, "测试一条数据");
-	}
-
 	/**
 	 * 交换机
 	 */
@@ -63,10 +44,4 @@ public class RabbitConfig {
 		return BindingBuilder.bind(alarmMsgQueue()).to(alarmServiceExchange()).with(alarmMsgRoutingKey);
 	}
 
-	@RabbitHandler
-	@RabbitListener(queues = { alarmMsgQueue })
-	public void dealMsg(String msg) throws Exception {
-		System.out.println(msg);
-	}
-
 }

+ 35 - 2
src/main/java/com/persagy/service/impl/AlarmHandleServiceImpl.java

@@ -419,10 +419,12 @@ public class AlarmHandleServiceImpl implements AlarmHandleService {
             } else {
                 log.debug("已创建的报警id中不包含[{}], 3分钟后重试发送报警恢复消息", alarmId);
                 // 创建恢复定时任务
-                createAlarmRecoverTimingJob(dataTime, paramMap, alarmRecordDO);
+//                createAlarmRecoverTimingJob(dataTime, paramMap, alarmRecordDO);
+                createAlarmRecoverTimingMq(dataTime, paramMap, alarmRecordDO);
             }
             // 取消过期任务
-            cancelRelatedExpireJob(alarmId);
+//            cancelRelatedExpireJob(alarmId);
+            cancelRelatedExpireMq(alarmId);
             //报警恢复,报警状态重置回默认
             alarmConditionState.reset();
         }
@@ -464,6 +466,28 @@ public class AlarmHandleServiceImpl implements AlarmHandleService {
         em.setJobGroupName("resume");
         ExpireAlarmQueue.getExpireAlarmMessageQueue().produce(em);
     }
+    private void createAlarmRecoverTimingMq(
+            String recoverTime, HashMap<String, Object> paramMap, ZktAlarmRecordDO alarmRecordDO)
+            throws InterruptedException {
+        JobDataMap jobDataMap = new JobDataMap();
+        jobDataMap.put("alarmRecord", alarmRecordDO.toString());
+        // 已重试次数
+        jobDataMap.put("refire", "0");
+        jobDataMap.put("endTime", recoverTime);
+        jobDataMap.put("endInfo", JSONObject.toJSONString(paramMap));
+        jobDataMap.put("defineId", alarmRecordDO.getDefinitionId());
+        // 恢复
+        jobDataMap.put("state", "2");
+        ExpireAlarmMessage em = new ExpireAlarmMessage();
+        em.setType("1");
+        em.setStartTime(DateUtil.offsetMinute(new Date(), 3).toJdkDate());
+        em.setJobDataMap(jobDataMap);
+        em.setJobName(alarmRecordDO.getAlarmId());
+        em.setJobGroupName("resume");
+//        ExpireAlarmQueue.getExpireAlarmMessageQueue().produce(em);
+		rabbitTemplate.convertAndSend(RabbitConfig.exchange, RabbitConfig.alarmMsgRoutingKey, JSON.toJSONString(em));
+
+    }
 
     /**
      * @description: 发送报警恢复消息
@@ -528,6 +552,15 @@ public class AlarmHandleServiceImpl implements AlarmHandleService {
         em.setJobGroupName("expire");
         ExpireAlarmQueue.getExpireAlarmMessageQueue().produce(em);
     }
+    private void cancelRelatedExpireMq(String alarmId) throws InterruptedException {
+        ExpireAlarmMessage em = new ExpireAlarmMessage();
+        em.setType("2");
+        em.setJobName(alarmId);
+        em.setJobGroupName("expire");
+//        ExpireAlarmQueue.getExpireAlarmMessageQueue().produce(em);
+		rabbitTemplate.convertAndSend(RabbitConfig.exchange, RabbitConfig.alarmMsgRoutingKey, JSON.toJSONString(em));
+
+    }
 
     /**
      * @description: 当报警恢复时边缘端删除报警信息