优化v2board 用户验证性能

This commit is contained in:
gua 2023-10-16 06:23:24 +05:30
parent 47f354927c
commit 9e700e28e1
2 changed files with 11 additions and 10 deletions

View File

@ -21,8 +21,8 @@ type V2boardApiProvider struct {
// 用户列表
var (
users []User
lock sync.Mutex
usersMap map[string]User
lock sync.Mutex
)
type User struct {
@ -52,7 +52,7 @@ func getUserList(url string) ([]User, error) {
func UpdateUsers(url string, interval time.Duration) {
fmt.Println("定时更新用户列表进程已开启")
fmt.Println("用户列表自动更新服务已激活")
ticker := time.NewTicker(interval)
defer ticker.Stop()
@ -66,7 +66,10 @@ func UpdateUsers(url string, interval time.Duration) {
continue
}
lock.Lock()
users = userList
usersMap = make(map[string]User)
for _, user := range userList {
usersMap[user.UUID] = user
}
lock.Unlock()
}
}
@ -79,10 +82,8 @@ func (v *V2boardApiProvider) Authenticate(addr net.Addr, auth string, tx uint64)
lock.Lock()
defer lock.Unlock()
for _, s := range users {
if s.UUID == string(auth) {
return true, strconv.Itoa(s.ID)
}
if user, exists := usersMap[auth]; exists {
return true, strconv.Itoa(user.ID)
}
return false, ""
}

View File

@ -37,7 +37,7 @@ type TrafficPushRequest struct {
// 定时提交用户流量情况
func (s *trafficStatsServerImpl) PushTrafficToV2boardInterval(url string, interval time.Duration) {
fmt.Println("提交用户流量情况进程已开启")
fmt.Println("用户流量情况监控已启动")
ticker := time.NewTicker(interval)
defer ticker.Stop()
@ -46,7 +46,7 @@ func (s *trafficStatsServerImpl) PushTrafficToV2boardInterval(url string, interv
select {
case <-ticker.C:
if err := s.PushTrafficToV2board(url); err != nil {
fmt.Println("提交用户流量情况失败:", err)
fmt.Println("用户流量信息提交失败:", err)
}
}
}