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

View File

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