Files
Atay-Makhzan/modules/setting/cache.go
T

84 lines
1.8 KiB
Go
Raw Normal View History

2019-02-10 09:37:37 +08:00
// Copyright 2019 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package setting
import (
"strings"
"time"
"code.gitea.io/gitea/modules/log"
)
// Cache represents cache settings
type Cache struct {
Enabled bool
2019-02-10 09:37:37 +08:00
Adapter string
Interval int
Conn string
TTL time.Duration `ini:"ITEM_TTL"`
2019-02-10 09:37:37 +08:00
}
var (
// CacheService the global cache
CacheService = struct {
Cache
LastCommit struct {
Enabled bool
TTL time.Duration `ini:"ITEM_TTL"`
CommitsCount int64
} `ini:"cache.last_commit"`
}{
Cache: Cache{
Enabled: true,
Adapter: "memory",
Interval: 60,
TTL: 16 * time.Hour,
},
LastCommit: struct {
Enabled bool
TTL time.Duration `ini:"ITEM_TTL"`
CommitsCount int64
}{
Enabled: true,
TTL: 8760 * time.Hour,
CommitsCount: 1000,
},
}
2019-02-10 09:37:37 +08:00
)
func newCacheService() {
sec := Cfg.Section("cache")
if err := sec.MapTo(&CacheService); err != nil {
log.Fatal("Failed to map Cache settings: %v", err)
2019-02-10 09:37:37 +08:00
}
CacheService.Adapter = sec.Key("ADAPTER").In("memory", []string{"memory", "redis", "memcache"})
2019-02-10 09:37:37 +08:00
switch CacheService.Adapter {
case "memory":
case "redis", "memcache":
CacheService.Conn = strings.Trim(sec.Key("HOST").String(), "\" ")
case "": // disable cache
CacheService.Enabled = false
2019-02-10 09:37:37 +08:00
default:
2019-04-02 08:48:31 +01:00
log.Fatal("Unknown cache adapter: %s", CacheService.Adapter)
2019-02-10 09:37:37 +08:00
}
if CacheService.Enabled {
log.Info("Cache Service Enabled")
}
sec = Cfg.Section("cache.last_commit")
if !CacheService.Enabled {
CacheService.LastCommit.Enabled = false
}
CacheService.LastCommit.CommitsCount = sec.Key("COMMITS_COUNT").MustInt64(1000)
if CacheService.LastCommit.Enabled {
log.Info("Last Commit Cache Service Enabled")
}
2019-02-10 09:37:37 +08:00
}