|
@@ -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: 当报警恢复时边缘端删除报警信息
|