dashboard_cache.go 736 B

123456789101112131415161718192021222324252627282930313233
  1. package dashboards
  2. import (
  3. "github.com/grafana/grafana/pkg/services/dashboards"
  4. gocache "github.com/patrickmn/go-cache"
  5. "time"
  6. )
  7. type dashboardCache struct {
  8. internalCache *gocache.Cache
  9. }
  10. func NewDashboardCache() *dashboardCache {
  11. return &dashboardCache{internalCache: gocache.New(5*time.Minute, 30*time.Minute)}
  12. }
  13. func (fr *dashboardCache) addDashboardCache(key string, json *dashboards.SaveDashboardItem) {
  14. fr.internalCache.Add(key, json, time.Minute*10)
  15. }
  16. func (fr *dashboardCache) getCache(key string) (*dashboards.SaveDashboardItem, bool) {
  17. obj, exist := fr.internalCache.Get(key)
  18. if !exist {
  19. return nil, exist
  20. }
  21. dash, ok := obj.(*dashboards.SaveDashboardItem)
  22. if !ok {
  23. return nil, ok
  24. }
  25. return dash, ok
  26. }