From 52713b8d85e26a984ecaeef926c815e8cf8075b7 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期四, 07 十一月 2019 19:24:17 +0800
Subject: [PATCH] ---

---
 labelFilter/ruleForLabel.go |   41 +++++++++++++++++++++++------------------
 1 files changed, 23 insertions(+), 18 deletions(-)

diff --git a/labelFilter/ruleForLabel.go b/labelFilter/ruleForLabel.go
index f00f31b..bb4f9a5 100644
--- a/labelFilter/ruleForLabel.go
+++ b/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,11 +17,11 @@
 			logger.Error("浜嬩欢鎺ㄩ�佹ā鍧楀効鐨勫紓甯告崟鑾凤細",err)
 		}
 	}()
-
+	start := time.Now()
 	// 瑁呴厤鎴愯嚜宸卞彲浠ヨ瘑鍒殑鏁版嵁
 	label := new(Label)
 	label.DataFormatToLabel(msg)
-	logger.Info("label鐨勪俊鎭細", label.CameraName, label.DefenceLevel, label.Time)
+	//logger.Info("label鐨勪俊鎭細", label.CameraName, label.DefenceLevel, label.Time)
 	if label.CameraName == "" {
 		logger.Error("鏃犳晥鏁版嵁锛岀洿鎺ヨ繑鍥�")
 		return
@@ -28,7 +29,7 @@
 	//鎷垮埌鎵�鏈夎鍒欑粍
 	var api dbapi.EventPushApi
 	b, allRules := api.FindAllDetails()
-	logger.Info("鏌ョ湅鎵�鏈夎鍒欑粍锛�", allRules)
+	//logger.Info("鏌ョ湅鎵�鏈夎鍒欑粍锛�", allRules)
 	if !b {
 		logger.Error("鏌ヨ鏃堕棿鎺ㄩ�佽鍒欏け璐ワ紒")
 	}
@@ -83,6 +84,7 @@
 					logger.Info("閫氳繃瑙勫垯锛岃〃杈惧紡涓猴細", result)
 					// 鎺ㄩ�佹湇鍔″櫒
 					pushData(ruleGroup.Urls, msg)
+					logger.Info("鏃堕棿鎺ㄩ�佹墍鐢ㄦ椂闂达細",time.Since(start))
 					//os.Exit(1)
 				} else {
 					logger.Info("娌¢�氳繃瑙勫垯,琛ㄨ揪寮忎负锛�", result)
@@ -98,7 +100,7 @@
 // 鏄惁绗﹀悎鏃堕棿瑙勫垯
 func timeJudge(label *Label, groupRule protomsg.EventPush) bool {
 	timeNow := time.Now().Format("2006-01-02 15:04:05")
-	logger.Info("鏍囩杩囨护鍣ㄨ捣濮嬫椂闂翠负锛�",groupRule.TimeStart,groupRule.TimeEnd)
+	//logger.Info("鏍囩杩囨护鍣ㄨ捣濮嬫椂闂翠负锛�",groupRule.TimeStart,groupRule.TimeEnd)
 	flag1 := isBefore(groupRule.TimeStart, timeNow)
 	flag2 := isBefore(timeNow, groupRule.TimeEnd)
 	if flag1 && flag2 {
@@ -135,7 +137,7 @@
 	if rule.TopicArg == "addr" {
 		formula = "'" + label.CameraAddr + "'" + rule.Operator + "'" + rule.RuleValue + "'"
 	}
-	logger.Info("-------鎵撳嵃鎽勫儚鏈鸿鍒欏叕寮忥細",formula)
+	//logger.Info("-------鎵撳嵃鎽勫儚鏈鸿鍒欏叕寮忥細",formula)
 	expression, err := govaluate.NewEvaluableExpression(formula);
 	if err != nil {
 		logger.Error("琛ㄨ揪寮忔湁璇紝璇锋鏌ワ紒", formula)
@@ -150,7 +152,7 @@
 		logger.Info("绗﹀悎鎽勫儚鏈鸿鍒�!")
 		return "true"
 	}
-	logger.Info("涓嶇鍚堟憚鍍忔満瑙勫垯!")
+	//logger.Info("涓嶇鍚堟憚鍍忔満瑙勫垯!")
 	return "false"
 }
 
@@ -172,7 +174,7 @@
 				for _, liker := range arg.Liker {
 					formula := "'" + liker.TableId + "'" + rule.Operator + "'" + rule.RuleValue + "'"
 					expression, err := govaluate.NewEvaluableExpression(formula);
-					logger.Info("-------鎵撳嵃搴曞簱瑙勫垯鍏紡锛�",formula)
+					//logger.Info("-------鎵撳嵃搴曞簱瑙勫垯鍏紡锛�",formula)
 					if err != nil {
 						logger.Error("琛ㄨ揪寮忔湁璇紝璇锋鏌ワ紒", formula)
 						return "false"
@@ -212,7 +214,7 @@
 				// 鍏朵粬杩欎釜鍊煎厛杩欎箞澶勭悊
 				return "true"
 			}
-			logger.Info("-------鎵撳嵃浜哄憳瑙勫垯鍏紡锛�",formula)
+			//logger.Info("-------鎵撳嵃浜哄憳瑙勫垯鍏紡锛�",formula)
 			expression, err := govaluate.NewEvaluableExpression(formula);
 			if err != nil {
 				logger.Error("琛ㄨ揪寮忔湁璇紝璇锋鏌ワ紒", formula)
@@ -236,7 +238,7 @@
 				}
 			} else {
 				formula := strconv.Itoa(int(personGroup.AlarmLevel)) + rule.Operator + formate(rule.RuleValue)
-				logger.Info("-------鎵撳嵃浜哄憳绛夌骇瑙勫垯鍏紡锛�",formula)
+				//logger.Info("-------鎵撳嵃浜哄憳绛夌骇瑙勫垯鍏紡锛�",formula)
 				expression, err := govaluate.NewEvaluableExpression(formula);
 				if err != nil {
 					logger.Error("琛ㄨ揪寮忔湁璇紝璇锋鏌ワ紒", formula)
@@ -273,7 +275,7 @@
 	} else {
 		for _, def := range label.DefenceLevel {
 			formula := strconv.Itoa(int(def)) + rule.Operator + rule.RuleValue
-			logger.Info("-------鎵撳嵃甯冮槻绛夌骇瑙勫垯鍏紡锛�",formula)
+			//logger.Info("-------鎵撳嵃甯冮槻绛夌骇瑙勫垯鍏紡锛�",formula)
 			expression, err := govaluate.NewEvaluableExpression(formula);
 			if err != nil {
 				logger.Error("琛ㄨ揪寮忔湁璇紝璇锋鏌ワ紒", formula)
@@ -298,7 +300,7 @@
 func taskJudge(label *Label, rule *protomsg.EventPushRule) string {
 	formula := "'"+label.TaskId +"'"+ rule.Operator +"'"+ rule.RuleValue+"'"
 	expression, err := govaluate.NewEvaluableExpression(formula);
-	logger.Info("-------鎵撳嵃浠诲姟瑙勫垯鍏紡锛�",formula)
+	//logger.Info("-------鎵撳嵃浠诲姟瑙勫垯鍏紡锛�",formula)
 	if err != nil {
 		logger.Error("琛ㄨ揪寮忔湁璇紝璇锋鏌ワ紒", formula)
 		return "false"
@@ -320,15 +322,18 @@
 func pushData(urls []*protomsg.PushUrl, data structure.ResultMsg) {
 	for _, url := range urls {
 		logger.Debug("鐪嬬湅鎺ㄩ�佸湴鍧�锛�",url.Url)
-		var ch chan *structure.ResultMsg
-		for _, v := range urlChans  {
-			if v.url == url.Url{
-				ch = v.ch
-			}
+		bytes,err1 := proto.Marshal(data)
+		if err1 != nil {
+			logger.Info("搴忓垪鍖栧け璐ワ細",err1)
 		}
-		ch <- &data
-		//logger.Info("urlPool澶у皬锛� ", len(urlPool[url.Url]))
+		if _, ok := urlPool[url.Url] ; ok {
+			urlPool[url.Url] <- bytes
+			logger.Info("chan淇℃伅鑰岋細 ", urlPool[url.Url])
+		}
+		logger.Info("chan淇℃伅浠ワ細 ", urlPool[url.Url])
+
 	}
+
 }
 
 // 鎶婃姤璀︾瓑绾ц浆鍖栨垚姹夊瓧

--
Gitblit v1.8.0