| | |
| | | middleware.InitUserConn() |
| | | v1.InitCodeServiceConn() |
| | | |
| | | middleware.InitRefreshUserManager(1, 5, 3600) |
| | | middleware.InitRefreshUserManager(2, 1, 120) |
| | | middleware.RunRefreshUser() ///定时对活跃用户更新用户详情 |
| | | |
| | | logx.Error(server.ListenAndServe().Error()) |
| | |
| | | select { |
| | | case <-ticker.C: |
| | | nowTs := time.Now().Unix() |
| | | 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() |
| | | logx.Infof("removed in active user:%+v", user) |
| | | delete(r.Users, userID) |
| | | delete(r.Users, user.UserID) |
| | | r.mu.Unlock() |
| | | } |
| | | } |
| | | r.mu.RUnlock() |
| | | case <-r.ctx.Done(): |
| | | fmt.Println("stop RemoveInActiveUser.") |
| | | return |