diff --git a/internal/rpc/cache/cache.go b/internal/rpc/cache/cache.go index 0adad4970..e42ab22e7 100644 --- a/internal/rpc/cache/cache.go +++ b/internal/rpc/cache/cache.go @@ -153,73 +153,56 @@ func updateAllGroupMemberListToCache() error { log.NewWarn("0", utils.GetSelfFuncName(), "getAllGroupIDList failed", err.Error()) panic(err.Error()) } - wg := &sync.WaitGroup{} - wg.Add(len(groupIDList)) + for _, groupID := range groupIDList { - go func() { - defer wg.Done() - groupMemberIDList, err := imdb.GetGroupMemberIDListByGroupID(groupID) - if err != nil { - log.NewWarn("", utils.GetSelfFuncName(), "GetGroupMemberIDListByGroupID", err.Error()) - return - } - //log.NewDebug("", utils.GetSelfFuncName(), "groupMemberIDList", groupMemberIDList) - if len(groupMemberIDList) > 0 { - if err := db.DB.AddGroupMemberToCache(groupID, groupMemberIDList...); err != nil { - log.NewWarn("", utils.GetSelfFuncName(), "AddGroupMemberToCache", err.Error()) - } + groupMemberIDList, err := imdb.GetGroupMemberIDListByGroupID(groupID) + if err != nil { + log.NewWarn("", utils.GetSelfFuncName(), "GetGroupMemberIDListByGroupID", err.Error()) + continue + } + if len(groupMemberIDList) > 0 { + if err := db.DB.AddGroupMemberToCache(groupID, groupMemberIDList...); err != nil { + log.NewWarn("", utils.GetSelfFuncName(), "AddGroupMemberToCache", err.Error()) } - }() + } } - wg.Wait() log.NewInfo("0", utils.GetSelfFuncName(), "ok") return nil } func updateAllFriendToCache(userList []db.User) error { log.NewInfo("0", utils.GetSelfFuncName()) - wg := sync.WaitGroup{} - wg.Add(len(userList)) for _, user := range userList { - go func() { - defer wg.Done() - friendIDList, err := imdb.GetFriendIDListByUserID(user.UserID) - if err != nil { - log.NewWarn("0", utils.GetSelfFuncName(), err.Error()) - return - } - if len(friendIDList) > 0 { - if err := db.DB.AddFriendToCache(user.UserID, friendIDList...); err != nil { - log.NewWarn("0", utils.GetSelfFuncName(), err.Error(), friendIDList, user.UserID) - } + friendIDList, err := imdb.GetFriendIDListByUserID(user.UserID) + if err != nil { + log.NewWarn("0", utils.GetSelfFuncName(), err.Error()) + continue + } + if len(friendIDList) > 0 { + if err := db.DB.AddFriendToCache(user.UserID, friendIDList...); err != nil { + log.NewWarn("0", utils.GetSelfFuncName(), err.Error(), friendIDList, user.UserID) } - }() + } } - wg.Wait() + log.NewInfo("0", utils.GetSelfFuncName(), "ok") return nil } func updateAllBlackListToCache(userList []db.User) error { log.NewInfo("0", utils.GetSelfFuncName()) - wg := &sync.WaitGroup{} - wg.Add(len(userList)) for _, user := range userList { - go func() { - defer wg.Done() - blackIDList, err := imdb.GetBlackIDListByUserID(user.UserID) - if err != nil { - log.NewWarn("", utils.GetSelfFuncName(), err.Error()) - return - } - if len(blackIDList) > 0 { - if err := db.DB.AddBlackUserToCache(user.UserID, blackIDList...); err != nil { - log.NewWarn("0", utils.GetSelfFuncName(), err.Error()) - } + blackIDList, err := imdb.GetBlackIDListByUserID(user.UserID) + if err != nil { + log.NewWarn("", utils.GetSelfFuncName(), err.Error()) + continue + } + if len(blackIDList) > 0 { + if err := db.DB.AddBlackUserToCache(user.UserID, blackIDList...); err != nil { + log.NewWarn("0", utils.GetSelfFuncName(), err.Error()) } - }() + } } - wg.Wait() log.NewInfo("0", utils.GetSelfFuncName(), "ok") return nil }