From 74b51d7b71fa71788754285691ecbaf5d34f7d70 Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期六, 16 十一月 2019 11:57:39 +0800 Subject: [PATCH] 为数据写入当前规则处理时间 --- labelFilter/ruleForLabel.go | 45 ++++++++++++++++++++++++++++----------------- 1 files changed, 28 insertions(+), 17 deletions(-) diff --git a/labelFilter/ruleForLabel.go b/labelFilter/ruleForLabel.go index 30e2d86..08d675b 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" } @@ -158,7 +160,7 @@ func baseJudge(label *Label, rule *protomsg.EventPushRule) string { if rule.RuleValue == "all" { for _, personGroup := range label.Persons { - for _, arg := range personGroup.Args { + for _, arg := range personGroup.AlarmObj { if len(arg.Liker) > 0 { logger.Info("婊¤冻鍏ㄩ儴搴曞簱瑙勫垯") return "true" @@ -168,11 +170,11 @@ return "false" } else { for _, personGroup := range label.Persons { - for _, arg := range personGroup.Args { + for _, arg := range personGroup.AlarmObj { 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" @@ -197,7 +199,7 @@ //鏄惁绗﹀悎浜哄憳瑙勫垯 func personJudge(label *Label, rule *protomsg.EventPushRule) string { for _, personGroup := range label.Persons { - for _, person := range personGroup.Args { + for _, person := range personGroup.AlarmObj { formula := "" if rule.TopicArg == "sex" { formula = strconv.Itoa(int(person.ThftRes.Gender)) + rule.Operator + rule.RuleValue @@ -212,7 +214,7 @@ // 鍏朵粬杩欎釜鍊煎厛杩欎箞澶勭悊 return "true" } - logger.Info("-------鎵撳嵃浜哄憳瑙勫垯鍏紡锛�",formula) + //logger.Info("-------鎵撳嵃浜哄憳瑙勫垯鍏紡锛�",formula) expression, err := govaluate.NewEvaluableExpression(formula); if err != nil { logger.Error("琛ㄨ揪寮忔湁璇紝璇锋鏌ワ紒", formula) @@ -230,13 +232,13 @@ } if rule.TopicArg == "monitorLevel" { if rule.RuleValue == "all" { - if len(personGroup.Args) > 0 { + if len(personGroup.AlarmObj) > 0 { logger.Info("绗﹀悎浜哄憳绛夌骇涓哄叏閮ㄧ殑瑙勫垯") return "true" } } 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,9 +322,18 @@ func pushData(urls []*protomsg.PushUrl, data structure.ResultMsg) { for _, url := range urls { logger.Debug("鐪嬬湅鎺ㄩ�佸湴鍧�锛�",url.Url) - //urlPool[url.Url] <- data - logger.Info("urlPool澶у皬锛� ", len(urlPool[url.Url])) + 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]) + } + logger.Info("chan淇℃伅浠ワ細 ", urlPool[url.Url]) + } + } // 鎶婃姤璀︾瓑绾ц浆鍖栨垚姹夊瓧 -- Gitblit v1.8.0