Browse Source

fix:预警消息异常推送

zqbao 4 months ago
parent
commit
d4db5e904d
2 changed files with 9 additions and 14 deletions
  1. 0 6
      services/binlog/handler.go
  2. 9 8
      services/edb_monitor/edb_monitor.go

+ 0 - 6
services/binlog/handler.go

@@ -1,8 +1,6 @@
 package binlog
 
 import (
-	"encoding/json"
-	"eta/eta_api/services/alarm_msg"
 	edbmonitorSvr "eta/eta_api/services/edb_monitor"
 	"eta/eta_api/utils"
 	"fmt"
@@ -109,15 +107,11 @@ func (h *EdbEventHandler) Update(e *canal.RowsEvent) error {
 	}
 	edbInfo := h.MapRowToStruct(e.Table.Columns, e.Rows[1])
 	if ok := edbmonitorSvr.EdbLocalSet.IsExist(edbInfo.EdbInfoId); ok {
-		sendBody, _ := json.Marshal(edbInfo)
-		alarm_msg.SendAlarmMsg(string(sendBody), 1)
 		err := utils.Rc.LPush(edbmonitorSvr.EDB_MONITOR_HANDLE_LIST_CACHE, edbInfo)
 		if err != nil {
 			return err
 		}
 	} else {
-		sendBody, _ := json.Marshal(edbInfo)
-		alarm_msg.SendAlarmMsg(string(sendBody), 1)
 		ok, err := utils.Rc.SIsMember(edbmonitorSvr.EDB_MONITOR_ID_SET_CACHE, edbInfo)
 		if err != nil {
 			return err

+ 9 - 8
services/edb_monitor/edb_monitor.go

@@ -312,12 +312,12 @@ func ModifyEdbMonitorStateAndSendMsg(edbMonitorInfo *edbmonitor.EdbMonitorInfo,
 		err = fmt.Errorf("GetEdbDataListByCondition err:%w", er)
 		return
 	}
-	err = ModifyEdbMonitorState(edbMonitorInfo, latestTwoData)
+	state, err := ModifyEdbMonitorState(edbMonitorInfo, latestTwoData)
 	if err != nil {
 		return
 	}
 
-	if edbMonitorInfo.State == EDB_MONITOR_STATE_TRIGGER_SUCCESS {
+	if state == EDB_MONITOR_STATE_TRIGGER_SUCCESS {
 		SendAndLogMessage(edbMonitorInfo)
 	}
 	return
@@ -334,27 +334,28 @@ func GetTwoEdbDataByDataTime(edbCode, dataTime string, source, subSource int) (t
 	return
 }
 
-func ModifyEdbMonitorState(edbMonitorInfo *edbmonitor.EdbMonitorInfo, latestTwoData []*data_manage.EdbData) (err error) {
+func ModifyEdbMonitorState(edbMonitorInfo *edbmonitor.EdbMonitorInfo, latestTwoData []*data_manage.EdbData) (state int, err error) {
 	var updateCols []string
 	edbMonitorInfo.EdbLatestDate = latestTwoData[0].DataTime
 	edbMonitorInfo.EdbLatestValue = latestTwoData[0].Value
 	updateCols = append(updateCols, []string{"edb_latest_date", "edb_latest_value"}...)
 
-	triggerState := cmpEdbMonitorState(latestTwoData, edbMonitorInfo.MonitorType, edbMonitorInfo.MonitorData)
-	if triggerState == EDB_MONITOR_STATE_TRIGGER_SUCCESS {
+	state = cmpEdbMonitorState(latestTwoData, edbMonitorInfo.MonitorType, edbMonitorInfo.MonitorData)
+	if state == EDB_MONITOR_STATE_TRIGGER_SUCCESS {
 		tmpTime, _ := time.Parse(utils.FormatDate, latestTwoData[0].DataTime)
 		edbMonitorInfo.EdbTriggerDate = tmpTime
 		edbMonitorInfo.MonitorTriggerTime = time.Now()
 		updateCols = append(updateCols, []string{"edb_trigger_date", "monitor_trigger_time"}...)
 	}
 	if edbMonitorInfo.State == EDB_MONITOR_STATE_NO_TRIGGER || edbMonitorInfo.State == EDB_MONITOR_STATE_CLOSE {
-		edbMonitorInfo.State = triggerState
+		edbMonitorInfo.State = state
 		updateCols = append(updateCols, "state")
 	}
 	err = edbMonitorInfo.Update(updateCols)
 	if err != nil {
 		return
 	}
+
 	return
 }
 
@@ -586,12 +587,12 @@ func HandleEdbMonitorEdbInfo() {
 					utils.FileLog.Error("获取数据失败, err:%w, edbInfoId:%d", err, edbInfo.EdbInfoId)
 					continue
 				}
-				err = ModifyEdbMonitorState(v, twoData)
+				state, err := ModifyEdbMonitorState(v, twoData)
 				if err != nil {
 					utils.FileLog.Error("更新预警状态失败, err:%w, edbMonitorId:%d", err, v.EdbMonitorId)
 					continue
 				}
-				if v.State == EDB_MONITOR_STATE_TRIGGER_SUCCESS {
+				if state == EDB_MONITOR_STATE_TRIGGER_SUCCESS {
 					err = SendAndLogMessage(v)
 					if err != nil {
 						utils.FileLog.Error("发送预警消息失败, err:%w, edbMonitorId:%d", err, v.EdbMonitorId)