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