修改int64
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package manage
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"omc/core/consts"
|
||||
"omc/core/db"
|
||||
@@ -23,7 +24,7 @@ type ChannelManager struct {
|
||||
BindFlag string //bind 的网元标识,ne_type#ne_id 格式
|
||||
Province string //网元所在省份
|
||||
DeviceCode string //主机编码 四位,每1位可用0-9、A-Z编码
|
||||
AlarmSeq int32 //当前告警的序列号
|
||||
AlarmSeq int64 //当前告警的序列号
|
||||
pLock sync.RWMutex //保护User的互斥读写机制
|
||||
}
|
||||
|
||||
@@ -162,23 +163,22 @@ func (wm *ChannelManager) RealTimeAlarm() {
|
||||
for {
|
||||
wm.pLock.RLock()
|
||||
//查询
|
||||
var newAlarmSeq = wm.AlarmSeq
|
||||
var alarms []service.OmcAlarm
|
||||
var alarms []model.OmcAlarm
|
||||
neBind, _ := parse.ConvertBindFlag(wm.BindFlag)
|
||||
var lastAlarmSeq = wm.AlarmSeq
|
||||
if wm.AlarmSeq == 0 {
|
||||
newAlarmSeq = service.GetLastAlarmSeq(neBind.NeType, neBind.NeId)
|
||||
|
||||
lastAlarmSeq = service.LastAlarmSeq(neBind.NeType, neBind.NeId)
|
||||
} else {
|
||||
ams, err := service.GetRealTimeAlarm(neBind.NeType, neBind.NeId, wm.AlarmSeq)
|
||||
list, err := service.List(neBind.NeType, neBind.NeId, wm.AlarmSeq)
|
||||
if err != nil {
|
||||
zlog.Ins().ErrorF("db error %s", err)
|
||||
}
|
||||
alarms = ams
|
||||
alarms = service.ConvertOMCAlarm(list)
|
||||
}
|
||||
//上报实时告警信息
|
||||
if len(alarms) > 0 {
|
||||
go wm.SendAlarm(alarms)
|
||||
newAlarmSeq = service.MaxAlarm(newAlarmSeq, alarms) + 1
|
||||
lastAlarmSeq = service.MaxAlarmSeq(lastAlarmSeq, alarms)
|
||||
}
|
||||
var users []string
|
||||
for _, user := range wm.User {
|
||||
@@ -189,7 +189,7 @@ func (wm *ChannelManager) RealTimeAlarm() {
|
||||
}
|
||||
|
||||
//更新AlarmSeq
|
||||
wm.AlarmSeq = newAlarmSeq
|
||||
wm.AlarmSeq = lastAlarmSeq + 1
|
||||
wm.pLock.RUnlock()
|
||||
|
||||
//记录日志到alarm 日志表
|
||||
@@ -205,10 +205,8 @@ func (wm *ChannelManager) RealTimeAlarm() {
|
||||
alarmLog.NeId = v.NeUID
|
||||
alarmLog.AlarmSeq = int64(v.AlarmSeq)
|
||||
alarmLog.AlarmId = v.AlarmId
|
||||
et, _ := time.Parse("2006-01-02 15:04:05", v.EventTime)
|
||||
alarmLog.EventTime = et
|
||||
alarmLog.EventTime = v.EventTime
|
||||
alarmLog.LogTime = time.Now()
|
||||
alarmLog.AId = v.AId
|
||||
|
||||
db.Client.Create(&alarmLog)
|
||||
}
|
||||
@@ -217,18 +215,22 @@ func (wm *ChannelManager) RealTimeAlarm() {
|
||||
}
|
||||
}
|
||||
|
||||
func (wm *ChannelManager) SendAlarm(alarms []service.OmcAlarm) error {
|
||||
func (wm *ChannelManager) SendAlarm(alarms []model.OmcAlarm) error {
|
||||
for _, v := range alarms {
|
||||
//生产告警内容
|
||||
data := service.GenAlarm(v)
|
||||
//发送告警内容
|
||||
wm.Talk(0, data)
|
||||
data, err := json.Marshal(v)
|
||||
if err != nil {
|
||||
zlog.Ins().ErrorF("SendAlarm json Marshalerror %v", err)
|
||||
} else {
|
||||
//发送告警内容
|
||||
wm.Talk(0, data)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (wm *ChannelManager) UpdateAlarmSeq(newSeq int32) {
|
||||
func (wm *ChannelManager) UpdateAlarmSeq(alarmSeq int64) {
|
||||
wm.pLock.Lock()
|
||||
wm.AlarmSeq = newSeq
|
||||
wm.AlarmSeq = alarmSeq
|
||||
wm.pLock.Unlock()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user