|
@@ -227,4 +227,47 @@ func autoCheckMonitorMessageList() (err error){
|
|
|
return
|
|
|
}
|
|
|
return
|
|
|
+}
|
|
|
+
|
|
|
+func AutoCheckMonitorMessageListByAdminId(adminId int) (err error){
|
|
|
+ // 设置缓存防止重复发送
|
|
|
+ cacheKey := fmt.Sprintf("%s%d", utils.CACHE_EDB_MONITOR_MESSAGE, adminId)
|
|
|
+ if !utils.Rc.SetNX(cacheKey, 1, 10*time.Minute) {
|
|
|
+ err = fmt.Errorf("系统处理中,请稍后重试!")
|
|
|
+ utils.FileLog.Error("指标预警信息检查失败,err:%s", err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ utils.FileLog.Error("指标预警信息检查失败,err:%s", err.Error())
|
|
|
+ }
|
|
|
+ _ = utils.Rc.Delete(cacheKey)
|
|
|
+ }()
|
|
|
+ utils.FileLog.Info("检查是否有预警信息")
|
|
|
+ messageList, er := edbmonitor.GetEdbMonitorMessageUnreadByAdminId(adminId)
|
|
|
+ if er != nil {
|
|
|
+ err = fmt.Errorf("获取指标预警信息历史失败,err:%s", er.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(messageList) == 0 {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ readList := make([]int, 0)
|
|
|
+ for k, msg := range messageList {
|
|
|
+ if k == 0 {
|
|
|
+ triggerTime := utils.TimeTransferString(utils.FormatDateTime, msg.MonitorTriggerTime)
|
|
|
+ err := SendMessages(msg.AdminId, msg.EdbInfoId, msg.EdbInfoType, msg.EdbClassifyId, msg.EdbUniqueCode, msg.Message, triggerTime)
|
|
|
+ if err != nil {
|
|
|
+ utils.FileLog.Error("指标预警信息发送失败,err:%s, adminId:%d", err.Error(), msg.AdminId)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ readList = append(readList, msg.EdbMonitorMessageId)
|
|
|
+ }
|
|
|
+
|
|
|
+ err = edbmonitor.SetEdbMonitorMessageReadByAdminId(adminId, readList)
|
|
|
+ if err != nil {
|
|
|
+ err = fmt.Errorf("指标预警信息已读失败,err:%s", err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ return
|
|
|
}
|