|
|
|
@ -5,11 +5,9 @@
|
|
|
|
|
package cache
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"errors"
|
|
|
|
|
"fmt"
|
|
|
|
|
"strconv"
|
|
|
|
|
|
|
|
|
|
"code.gitea.io/gitea/modules/log"
|
|
|
|
|
"code.gitea.io/gitea/modules/setting"
|
|
|
|
|
|
|
|
|
|
mc "gitea.com/go-chi/cache"
|
|
|
|
@ -35,7 +33,7 @@ func NewContext() error {
|
|
|
|
|
if conn, err = newCache(setting.CacheService.Cache); err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
if err = Ping(); err != nil {
|
|
|
|
|
if err = conn.Ping(); err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -43,29 +41,6 @@ func NewContext() error {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Ping checks if the cache service works or not, it not, it returns an error
|
|
|
|
|
func Ping() error {
|
|
|
|
|
if conn == nil {
|
|
|
|
|
return errors.New("cache not available")
|
|
|
|
|
}
|
|
|
|
|
var err error
|
|
|
|
|
const testKey = "__gitea_cache_test"
|
|
|
|
|
const testVal = "test-value"
|
|
|
|
|
if err = conn.Put(testKey, testVal, 10); err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
val := conn.Get(testKey)
|
|
|
|
|
if valStr, ok := val.(string); !ok || valStr != testVal {
|
|
|
|
|
// If the cache is full, the Get may not read the expected value stored by Put.
|
|
|
|
|
// Since we have checked that Put can success, so we just show a warning here, do not return an error to panic.
|
|
|
|
|
log.Warn("cache (adapter:%s, config:%s) doesn't seem to work correctly, set test value '%v' but get '%v'",
|
|
|
|
|
setting.CacheService.Cache.Adapter, setting.CacheService.Cache.Conn,
|
|
|
|
|
testVal, val,
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
return nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// GetCache returns the currently configured cache
|
|
|
|
|
func GetCache() mc.Cache {
|
|
|
|
|
return conn
|
|
|
|
|