From 811da147dccb634292afc698d73decc23ea77bf1 Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期一, 15 七月 2019 15:58:30 +0800 Subject: [PATCH] 更新cache解决区域重复问题,开始标签过滤器模块,把数据准备的代码拆出来 --- ruleserver/timeTicker.go | 70 ++++++++++++++++++++++++++++++++++ 1 files changed, 69 insertions(+), 1 deletions(-) diff --git a/ruleserver/timeTicker.go b/ruleserver/timeTicker.go index c119195..0809fb4 100644 --- a/ruleserver/timeTicker.go +++ b/ruleserver/timeTicker.go @@ -3,6 +3,7 @@ import ( "fmt" "ruleprocess/logger" + "strings" "time" ) @@ -15,7 +16,7 @@ type TimeElement struct { N int // 鎸夋椂闂翠緷娆¢�掑噺鐨勫綋鍓嶅�� InitN int // 璧嬪�煎悗灏变笉鍙樼殑鍒濆鍊� - BufferFlag int // 缂撳啿瀹归敊浣� 杩炵画甯alse鎵嶄负false + BufferFlag int // 缂撳啿瀹归敊浣� 杩炵画n甯alse鎵嶄负false AlarmFlag bool // 鎶ヨ鏍囧織浣� 瀹氭椂鍣ㄥ紑鍚悗绗竴娆℃姤璀︽椂浼氳缃负true 寰�鍚庡啀鏉ユ姤璀︿篃涓嶄細鎻掕繘ES CacheSdkData ResultMsg // 瀹氭椂鍣ㄧ殑缂撳瓨鏁版嵁 鎸佺画鏃堕棿绫荤殑寮�鍚畾鏃跺櫒鏃惰缂撳瓨涓�甯� GroupId string // 鑱斿姩瑙勫垯闇�瑕佽褰曚笅姝ゆ椂鐨勮鍒欑粍id @@ -66,6 +67,73 @@ TimeTicker() } + +// 鍒ゆ柇鏄惁绗﹀悎瀹氭椂鍣ㄦ潯浠� +func TimerAlarm(args *SdkDatas,groupId string,result bool) (string) { + var flagTime string // + // 鍒ゆ柇鏈夋棤姝よ鍒欑粍鐨勫畾鏃跺櫒 + flag := false + for k,_ := range TimeEleList { + logger.Debug("-----------------鐪嬬湅杩欎釜key鍜実roupId",k,groupId) + if strings.Contains(k, groupId) { + flag = true + } + } + if flag { // 鏈夊畾鏃跺櫒 + if result { // 缁撴灉涓虹湡 + for k, timeEle := range TimeEleList { + if strings.Contains(k, groupId) { + if timeEle.N == 0 && timeEle.AlarmFlag { + logger.Debug("-------------------------绗﹀悎鎸佺画鏃堕棿瑙勫垯浣嗗苟涓嶆槸棣栨锛屼笉鎶ヨ") + flagTime = "11" + args.RuleResult["timeLabel"] = flagTime + } + if timeEle.N == 0 && !timeEle.AlarmFlag { // 杩欑粍瑙勫垯鐨勫畾鏃跺櫒瑕佸叏閮ㄧ瓑浜�0 鏆備笖璁や负涓�缁勮鍒欏彧鏈変竴涓畾鏃跺櫒 + logger.Debug("鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺��-------------棣栨绗﹀悎鎸佺画鏃堕棿瑙勫垯骞舵姤璀�") + flagTime = "10" + timeEle.AlarmFlag = true + args.RuleResult["cacheData"] = timeEle.CacheSdkData + args.RuleResult["timeLabel"] = flagTime + } + if timeEle.N != 0 { + flagTime = "00" + // 鏈夊畾鏃跺櫒浣嗕笉涓�0鎶婂凡鎵撶殑鏍囩鍒犻櫎 + args.RuleResult = nil + logger.Debug("------------------------缁撴灉涓虹湡浣嗚鏁板櫒涓嶅埌0锛屼笉鎶ヨ,姝ゆ椂鐨勮鏁板櫒鐨勫�间负锛�",timeEle.N) + } + } + } + } else { // 缁撴灉涓哄亣 + for k, timeEle := range TimeEleList { + if strings.Contains(k, groupId) { + if timeEle.AlarmFlag { + if timeEle.BufferFlag == 0 { + logger.Debug("------------------------------鏉�姝诲畾鏃跺櫒锛屾姤璀︽甯х姸鎬佹敼鍙樼殑鏁版嵁锛屾鏃剁殑璁℃暟鍣ㄧ殑鍊间负",timeEle.N) + flagTime = "12" + args.RuleResult["timeLabel"] = flagTime + delete(TimeEleList,k) + } else { + if timeEle.BufferFlag > 0 { + timeEle.BufferFlag-- + } + } + } else { + delete(TimeEleList,k) + } + } + } + + } + } else { // 鏃犲畾鏃跺櫒 + if result { + flagTime = "01" + args.RuleResult["timeLabel"] = flagTime + } else { + flagTime = "00" + } + } + return flagTime +} // 缁撴瀯浣撴牴鎹煇瀛楁鎺掑簭 type SubList []*RuleResult -- Gitblit v1.8.0