summaryrefslogtreecommitdiffstats
path: root/modules/cache
diff options
context:
space:
mode:
Diffstat (limited to 'modules/cache')
-rw-r--r--modules/cache/cache.go37
1 files changed, 25 insertions, 12 deletions
diff --git a/modules/cache/cache.go b/modules/cache/cache.go
index 0198f8da73..fd32aa153b 100644
--- a/modules/cache/cache.go
+++ b/modules/cache/cache.go
@@ -5,6 +5,7 @@
package cache
import (
+ "errors"
"fmt"
"strconv"
@@ -34,25 +35,37 @@ func NewContext() error {
if conn, err = newCache(setting.CacheService.Cache); err != nil {
return err
}
- const testKey = "__gitea_cache_test"
- const testVal = "test-value"
- if err = conn.Put(testKey, testVal, 10); err != nil {
+ if err = Ping(); 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 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