---
panlei
2019-11-04 da61291c0c526b82c85a1be09234ee4302b098ed
labelFilter/ruleForLabel.go
@@ -4,6 +4,7 @@
   "basic.com/dbapi.git"
   "basic.com/pubsub/protomsg.git"
   "basic.com/valib/logger.git"
   "github.com/golang/protobuf/proto"
   "github.com/knetic/govaluate"
   "ruleprocess/structure"
   "strconv"
@@ -16,7 +17,7 @@
         logger.Error("事件推送模块儿的异常捕获:",err)
      }
   }()
   start := time.Now()
   // 装配成自己可以识别的数据
   label := new(Label)
   label.DataFormatToLabel(msg)
@@ -82,7 +83,7 @@
            if result.(bool) {
               logger.Info("通过规则,表达式为:", result)
               // 推送服务器
               pushData(ruleGroup.Urls, msg)
               pushData(ruleGroup.Urls, msg, start)
               //os.Exit(1)
            } else {
               logger.Info("没通过规则,表达式为:", result)
@@ -317,16 +318,19 @@
}
// 调用目标服务器的插入接口
func pushData(urls []*protomsg.PushUrl, data structure.ResultMsg) {
func pushData(urls []*protomsg.PushUrl, data structure.ResultMsg,start time.Time) {
   for _, url := range urls {
      logger.Debug("看看推送地址:",url.Url)
      for _, v := range urlChans  {
         if v.url == url.Url{
            v.ch <- &data
         }
      bytes,err1 := proto.Marshal(data)
      if err1 != nil {
         logger.Info("序列化失败:",err1)
      }
      if _, ok := urlPool[url.Url] ; ok {
         urlPool[url.Url] <- bytes
         logger.Info("chan信息而: ", urlPool[url.Url],time.Since(start))
      }
      logger.Info("chan信息以: ", urlPool[url.Url])
      //logger.Info("urlPool大小: ", len(urlPool[url.Url]))
   }
}