From 4262cb8c6aa73dbe6c9cb598d91313d04d5433ef Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期四, 31 十月 2019 10:32:48 +0800 Subject: [PATCH] 事件推送加人体追踪 --- labelFilter/ruleForLabel.go | 41 +++++++++++++++++++++++++++++++---------- 1 files changed, 31 insertions(+), 10 deletions(-) diff --git a/labelFilter/ruleForLabel.go b/labelFilter/ruleForLabel.go index ba8cbd0..ce3fcca 100644 --- a/labelFilter/ruleForLabel.go +++ b/labelFilter/ruleForLabel.go @@ -3,14 +3,33 @@ import ( "basic.com/dbapi.git" "basic.com/pubsub/protomsg.git" + "basic.com/valib/logger.git" "github.com/knetic/govaluate" - "ruleprocess/logger" "ruleprocess/ruleserver" + "ruleprocess/structure" "strconv" "time" ) -func Judge(msg ruleserver.ResultMsg) { +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) @@ -33,7 +52,7 @@ timeFlag := timeJudge(label, ruleGroup) if !timeFlag { logger.Info("涓嶅湪瑙勫垯鐨勬椂闂磋寖鍥村唴锛屼笉鎺ㄩ�侊紒") - return + continue } result := "" var Connector string @@ -67,6 +86,7 @@ expression, err := govaluate.NewEvaluableExpression(result); if err != nil { logger.Error("琛ㄨ揪寮忔湁璇紝璇锋鏌ワ紒") + return } result, err1 := expression.Evaluate(nil) if err1 != nil { @@ -107,6 +127,7 @@ expression, err := govaluate.NewEvaluableExpression("t1 < t2"); if err != nil { logger.Error("琛ㄨ揪寮忔湁璇紝璇锋鏌ワ紒") + return false } parameters := make(map[string]interface{}, 8) parameters["t1"] = time1 @@ -167,7 +188,7 @@ logger.Info("-------鎵撳嵃搴曞簱瑙勫垯鍏紡锛�",formula) if err != nil { logger.Error("琛ㄨ揪寮忔湁璇紝璇锋鏌ワ紒", formula) - //return "false" + return "false" } result, err1 := expression.Evaluate(nil) if err1 != nil { @@ -208,7 +229,7 @@ expression, err := govaluate.NewEvaluableExpression(formula); if err != nil { logger.Error("琛ㄨ揪寮忔湁璇紝璇锋鏌ワ紒", formula) - //return "false" + return "false" } result, err1 := expression.Evaluate(nil) if err1 != nil { @@ -232,7 +253,7 @@ expression, err := govaluate.NewEvaluableExpression(formula); if err != nil { logger.Error("琛ㄨ揪寮忔湁璇紝璇锋鏌ワ紒", formula) - //return "false" + return "false" } result, err1 := expression.Evaluate(nil) if err1 != nil { @@ -264,12 +285,12 @@ } } else { for _, def := range label.DefenceLevel { - formula := strconv.Itoa(int(def)) + rule.Operator + formate(rule.RuleValue) + formula := strconv.Itoa(int(def)) + rule.Operator + rule.RuleValue logger.Info("-------鎵撳嵃甯冮槻绛夌骇瑙勫垯鍏紡锛�",formula) expression, err := govaluate.NewEvaluableExpression(formula); if err != nil { logger.Error("琛ㄨ揪寮忔湁璇紝璇锋鏌ワ紒", formula) - //return "false" + return "false" } result, err1 := expression.Evaluate(nil) if err1 != nil { @@ -309,10 +330,10 @@ } // 璋冪敤鐩爣鏈嶅姟鍣ㄧ殑鎻掑叆鎺ュ彛 -func pushData(urls []*protomsg.PushUrl, data ruleserver.ResultMsg) { +func pushData(urls []*protomsg.PushUrl, data structure.ResultMsg) { for _, url := range urls { logger.Debug("鐪嬬湅鎺ㄩ�佸湴鍧�锛�",url.Url) - Push("tcp://192.168.1.123:40012", data) + urlPool[url.Url] <- data } } -- Gitblit v1.8.0