panlei
2019-10-31 4262cb8c6aa73dbe6c9cb598d91313d04d5433ef
labelFilter/ruleForLabel.go
@@ -5,17 +5,31 @@
   "basic.com/pubsub/protomsg.git"
   "basic.com/valib/logger.git"
   "github.com/knetic/govaluate"
   "ruleprocess/ruleserver"
   "ruleprocess/structure"
   "strconv"
   "time"
)
func PushSomthing (msg structure.ResultMsg) {
   // 如果标签中含有持续时间首次报警的timeLabel的话则不需要过人体追踪,不然就没的插入了
   fk := ruleserver.TrackOrNot(msg.RuleResult)
   if fk {
      Judge(msg)
   } else {
      flag := ruleserver.BodyIsSame(msg.SdkMessage)
      if !flag {
         Judge(msg)
      }
   }
}
func Judge(msg structure.ResultMsg) {
   defer func() {
      if err := recover(); err != nil {
         logger.Error("事件推送模块儿的异常捕获:",err)
      }
   }()
   // 装配成自己可以识别的数据
   label := new(Label)
   label.DataFormatToLabel(msg)
@@ -38,7 +52,7 @@
         timeFlag := timeJudge(label, ruleGroup)
         if !timeFlag {
            logger.Info("不在规则的时间范围内,不推送!")
            return
            continue
         }
         result := ""
         var Connector string
@@ -319,7 +333,7 @@
func pushData(urls []*protomsg.PushUrl, data structure.ResultMsg) {
   for _, url := range urls {
      logger.Debug("看看推送地址:",url.Url)
      Push("tcp://"+url.Url, data)
      urlPool[url.Url] <- data
   }
}