From ad2e1e137b7f897f3e623db811466d3fa8c8e2d7 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期二, 19 十一月 2019 14:14:10 +0800
Subject: [PATCH] 字典缓存
---
labelFilter/ruleForLabel.go | 34 ++++++++++++++++++++++++++--------
1 files changed, 26 insertions(+), 8 deletions(-)
diff --git a/labelFilter/ruleForLabel.go b/labelFilter/ruleForLabel.go
index ef2ca9f..08d675b 100644
--- a/labelFilter/ruleForLabel.go
+++ b/labelFilter/ruleForLabel.go
@@ -3,14 +3,21 @@
import (
"basic.com/dbapi.git"
"basic.com/pubsub/protomsg.git"
- "ruleprocess/logger"
+ "basic.com/valib/logger.git"
+ "github.com/golang/protobuf/proto"
"github.com/knetic/govaluate"
"ruleprocess/structure"
"strconv"
"time"
)
-func Judge(msg structure.ResultMsg) {
+func PushSomthing(msg structure.ResultMsg) {
+ defer func() {
+ if err := recover(); err != nil {
+ logger.Error("浜嬩欢鎺ㄩ�佹ā鍧楀効鐨勫紓甯告崟鑾凤細",err)
+ }
+ }()
+ start := time.Now()
// 瑁呴厤鎴愯嚜宸卞彲浠ヨ瘑鍒殑鏁版嵁
label := new(Label)
label.DataFormatToLabel(msg)
@@ -33,7 +40,7 @@
timeFlag := timeJudge(label, ruleGroup)
if !timeFlag {
logger.Info("涓嶅湪瑙勫垯鐨勬椂闂磋寖鍥村唴锛屼笉鎺ㄩ�侊紒")
- return
+ continue
}
result := ""
var Connector string
@@ -77,6 +84,7 @@
logger.Info("閫氳繃瑙勫垯锛岃〃杈惧紡涓猴細", result)
// 鎺ㄩ�佹湇鍔″櫒
pushData(ruleGroup.Urls, msg)
+ logger.Info("鏃堕棿鎺ㄩ�佹墍鐢ㄦ椂闂达細",time.Since(start))
//os.Exit(1)
} else {
logger.Info("娌¢�氳繃瑙勫垯,琛ㄨ揪寮忎负锛�", result)
@@ -152,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"
@@ -162,7 +170,7 @@
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);
@@ -191,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
@@ -224,7 +232,7 @@
}
if rule.TopicArg == "monitorLevel" {
if rule.RuleValue == "all" {
- if len(personGroup.Args) > 0 {
+ if len(personGroup.AlarmObj) > 0 {
logger.Info("绗﹀悎浜哄憳绛夌骇涓哄叏閮ㄧ殑瑙勫垯")
return "true"
}
@@ -314,8 +322,18 @@
func pushData(urls []*protomsg.PushUrl, data structure.ResultMsg) {
for _, url := range urls {
logger.Debug("鐪嬬湅鎺ㄩ�佸湴鍧�锛�",url.Url)
- Push("tcp://192.168.1.123:40012", 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])
+ }
+ logger.Info("chan淇℃伅浠ワ細 ", urlPool[url.Url])
+
}
+
}
// 鎶婃姤璀︾瓑绾ц浆鍖栨垚姹夊瓧
--
Gitblit v1.8.0