chore: add system setting cache (#1609)

pull/1610/head
boojack 2 years ago committed by GitHub
parent 884dca20b3
commit 4603f414db
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -13,11 +13,12 @@ type Store struct {
db *sql.DB db *sql.DB
profile *profile.Profile profile *profile.Profile
userCache sync.Map // map[int]*userRaw systemSettingCache sync.Map // map[string]*systemSettingRaw
userSettingCache sync.Map // map[string]*userSettingRaw userCache sync.Map // map[int]*userRaw
memoCache sync.Map // map[int]*memoRaw userSettingCache sync.Map // map[string]*userSettingRaw
shortcutCache sync.Map // map[int]*shortcutRaw memoCache sync.Map // map[int]*memoRaw
idpCache sync.Map // map[int]*identityProviderMessage shortcutCache sync.Map // map[int]*shortcutRaw
idpCache sync.Map // map[int]*identityProviderMessage
} }
// New creates a new instance of Store. // New creates a new instance of Store.

@ -41,7 +41,7 @@ func (s *Store) UpsertSystemSetting(ctx context.Context, upsert *api.SystemSetti
} }
systemSetting := systemSettingRaw.toSystemSetting() systemSetting := systemSettingRaw.toSystemSetting()
s.systemSettingCache.Store(systemSettingRaw.Name, systemSettingRaw)
return systemSetting, nil return systemSetting, nil
} }
@ -63,13 +63,17 @@ func (s *Store) FindSystemSettingList(ctx context.Context, find *api.SystemSetti
list := []*api.SystemSetting{} list := []*api.SystemSetting{}
for _, raw := range systemSettingRawList { for _, raw := range systemSettingRawList {
s.systemSettingCache.Store(raw.Name, raw)
list = append(list, raw.toSystemSetting()) list = append(list, raw.toSystemSetting())
} }
return list, nil return list, nil
} }
func (s *Store) FindSystemSetting(ctx context.Context, find *api.SystemSettingFind) (*api.SystemSetting, error) { func (s *Store) FindSystemSetting(ctx context.Context, find *api.SystemSettingFind) (*api.SystemSetting, error) {
if systemSetting, ok := s.systemSettingCache.Load(find.Name); ok {
systemSettingRaw := systemSetting.(*systemSettingRaw)
return systemSettingRaw.toSystemSetting(), nil
}
tx, err := s.db.BeginTx(ctx, nil) tx, err := s.db.BeginTx(ctx, nil)
if err != nil { if err != nil {
return nil, FormatError(err) return nil, FormatError(err)
@ -85,7 +89,9 @@ func (s *Store) FindSystemSetting(ctx context.Context, find *api.SystemSettingFi
return nil, &common.Error{Code: common.NotFound, Err: fmt.Errorf("not found")} return nil, &common.Error{Code: common.NotFound, Err: fmt.Errorf("not found")}
} }
return systemSettingRawList[0].toSystemSetting(), nil systemSettingRaw := systemSettingRawList[0]
s.systemSettingCache.Store(systemSettingRaw.Name, systemSettingRaw)
return systemSettingRaw.toSystemSetting(), nil
} }
func upsertSystemSetting(ctx context.Context, tx *sql.Tx, upsert *api.SystemSettingUpsert) (*systemSettingRaw, error) { func upsertSystemSetting(ctx context.Context, tx *sql.Tx, upsert *api.SystemSettingUpsert) (*systemSettingRaw, error) {

Loading…
Cancel
Save