chore: update store cache

pull/3356/head
Steven 1 year ago
parent 93e8fa4912
commit cf423026a5

@ -5,5 +5,5 @@ import (
) )
func getUserSettingCacheKey(userID int32, key string) string { func getUserSettingCacheKey(userID int32, key string) string {
return fmt.Sprintf("%d-%s-v1", userID, key) return fmt.Sprintf("%d-%s", userID, key)
} }

@ -70,7 +70,10 @@ func (s *Store) ListIdentityProviders(ctx context.Context, find *FindIdentityPro
func (s *Store) GetIdentityProvider(ctx context.Context, find *FindIdentityProvider) (*storepb.IdentityProvider, error) { func (s *Store) GetIdentityProvider(ctx context.Context, find *FindIdentityProvider) (*storepb.IdentityProvider, error) {
if find.ID != nil { if find.ID != nil {
if cache, ok := s.idpCache.Load(*find.ID); ok { if cache, ok := s.idpCache.Load(*find.ID); ok {
return cache.(*storepb.IdentityProvider), nil identityProvider, ok := cache.(*storepb.IdentityProvider)
if ok {
return identityProvider, nil
}
} }
} }

@ -13,7 +13,7 @@ type Store struct {
driver Driver driver Driver
workspaceSettingCache sync.Map // map[string]*storepb.WorkspaceSetting workspaceSettingCache sync.Map // map[string]*storepb.WorkspaceSetting
userCache sync.Map // map[int]*User userCache sync.Map // map[int]*User
userSettingCache sync.Map // map[string]*UserSetting userSettingCache sync.Map // map[string]*storepb.UserSetting
idpCache sync.Map // map[int]*storepb.IdentityProvider idpCache sync.Map // map[int]*storepb.IdentityProvider
} }

@ -131,9 +131,11 @@ func (s *Store) GetUser(ctx context.Context, find *FindUser) (*User, error) {
if *find.ID == SystemBotID { if *find.ID == SystemBotID {
return SystemBot, nil return SystemBot, nil
} }
if cache, ok := s.userCache.Load(*find.ID); ok { if cache, ok := s.userCache.Load(*find.ID); ok {
return cache.(*User), nil user, ok := cache.(*User)
if ok {
return user, nil
}
} }
} }

@ -65,7 +65,10 @@ func (s *Store) ListUserSettings(ctx context.Context, find *FindUserSetting) ([]
func (s *Store) GetUserSetting(ctx context.Context, find *FindUserSetting) (*storepb.UserSetting, error) { func (s *Store) GetUserSetting(ctx context.Context, find *FindUserSetting) (*storepb.UserSetting, error) {
if find.UserID != nil { if find.UserID != nil {
if cache, ok := s.userSettingCache.Load(getUserSettingCacheKey(*find.UserID, find.Key.String())); ok { if cache, ok := s.userSettingCache.Load(getUserSettingCacheKey(*find.UserID, find.Key.String())); ok {
return cache.(*storepb.UserSetting), nil userSetting, ok := cache.(*storepb.UserSetting)
if ok {
return userSetting, nil
}
} }
} }

@ -80,7 +80,10 @@ func (s *Store) ListWorkspaceSettings(ctx context.Context, find *FindWorkspaceSe
func (s *Store) GetWorkspaceSetting(ctx context.Context, find *FindWorkspaceSetting) (*storepb.WorkspaceSetting, error) { func (s *Store) GetWorkspaceSetting(ctx context.Context, find *FindWorkspaceSetting) (*storepb.WorkspaceSetting, error) {
if cache, ok := s.workspaceSettingCache.Load(find.Name); ok { if cache, ok := s.workspaceSettingCache.Load(find.Name); ok {
return cache.(*storepb.WorkspaceSetting), nil workspaceSetting, ok := cache.(*storepb.WorkspaceSetting)
if ok {
return workspaceSetting, nil
}
} }
list, err := s.ListWorkspaceSettings(ctx, find) list, err := s.ListWorkspaceSettings(ctx, find)
@ -91,7 +94,7 @@ func (s *Store) GetWorkspaceSetting(ctx context.Context, find *FindWorkspaceSett
return nil, nil return nil, nil
} }
if len(list) > 1 { if len(list) > 1 {
return nil, errors.Errorf("Found multiple workspace settings with key %s", find.Name) return nil, errors.Errorf("found multiple workspace settings with key %s", find.Name)
} }
return list[0], nil return list[0], nil
} }

Loading…
Cancel
Save