From 2030ec81f18f4ec9ea1800f13046acafff6d50f7 Mon Sep 17 00:00:00 2001 From: yinbentan <yinbentan@live.com> Date: 星期四, 26 九月 2024 00:48:59 +0800 Subject: [PATCH] 添加grpc方法:客户信息维护 --- middleware/refresh_user.go | 19 +++++++++++++------ 1 files changed, 13 insertions(+), 6 deletions(-) diff --git a/middleware/refresh_user.go b/middleware/refresh_user.go index 22db40c..54ebd3e 100644 --- a/middleware/refresh_user.go +++ b/middleware/refresh_user.go @@ -1,6 +1,7 @@ package middleware import ( + "aps_crm/pkg/logx" "context" "fmt" "sync" @@ -43,6 +44,7 @@ intervalRefreshUserMinute: intervalRefreshUserMinute, ctx: ctx, cancel: cancel, + Users: map[string]*CurrentActiveUser{}, } } @@ -70,8 +72,10 @@ UserID: userID, lastActiveTime: time.Now().Unix(), } + logx.Infof("add active user :%+v", r.Users[userID]) } else { r.Users[userID].lastActiveTime = time.Now().Unix() + logx.Infof("refresh active time, user:%+v", r.Users[userID]) } } @@ -87,16 +91,20 @@ select { case <-ticker.C: nowTs := time.Now().Unix() - fmt.Println("it is time to RemoveInActiveUser:", nowTs) + var users []*CurrentActiveUser r.mu.RLock() - for userID, user := range r.Users { + for _, user := range r.Users { + users = append(users, user) + } + r.mu.RUnlock() + for _, user := range users { if nowTs-user.lastActiveTime > r.expireSecond { r.mu.Lock() - delete(r.Users, userID) + logx.Infof("removed in active user:%+v", user) + delete(r.Users, user.UserID) r.mu.Unlock() } } - r.mu.RUnlock() case <-r.ctx.Done(): fmt.Println("stop RemoveInActiveUser.") return @@ -112,8 +120,6 @@ for { select { case <-ticker.C: - nowTs := time.Now().Unix() - fmt.Println("it is time to RefreshUserInfo:", nowTs) r.mu.RLock() userIds := make([]string, len(r.Users)) for userID := range r.Users { @@ -121,6 +127,7 @@ } r.mu.RUnlock() if len(userIds) != 0 { + logx.Infof("RefreshUserInfo, user ids: ", userIds) SyncUserInfo(userIds) } case <-r.ctx.Done(): -- Gitblit v1.8.0