From d8edc0d2bf916dfdb4e59e24ba9b10afcafb5a9e Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Mon, 15 Nov 2021 16:59:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=BF=90=E8=A1=8C=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E4=B8=8A=E4=BC=A0=E5=8A=9F=E8=83=BD=EF=BC=8C=E6=9C=80?= =?UTF-8?q?=E8=BF=91N=E6=9D=A1=E9=87=8D=E5=A4=8D=E7=9A=84=E4=B8=8D?= =?UTF-8?q?=E5=86=8D=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/remotelogs/utils.go | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/internal/remotelogs/utils.go b/internal/remotelogs/utils.go index e9f339e..f7dfdf8 100644 --- a/internal/remotelogs/utils.go +++ b/internal/remotelogs/utils.go @@ -6,7 +6,9 @@ import ( teaconst "github.com/TeaOSLab/EdgeNode/internal/const" "github.com/TeaOSLab/EdgeNode/internal/rpc" "github.com/TeaOSLab/EdgeNode/internal/trackers" + "github.com/cespare/xxhash" "github.com/iwind/TeaGo/logs" + "github.com/iwind/TeaGo/types" "time" ) @@ -159,11 +161,33 @@ func ServerSuccess(serverId int64, tag string, description string) { // 上传日志 func uploadLogs() error { logList := []*pb.NodeLog{} + + const hashSize = 5 + var hashList = []uint64{} + Loop: for { select { case log := <-logChan: - logList = append(logList, log) + // 是否已存在 + var hash = xxhash.Sum64String(types.String(log.ServerId) + "_" + log.Description) + var found = false + for _, h := range hashList { + if h == hash { + found = true + break + } + } + + // 加入 + if !found { + hashList = append(hashList, hash) + if len(hashList) > hashSize { + hashList = hashList[1:] + } + + logList = append(logList, log) + } default: break Loop }