diff options
Diffstat (limited to 'modules/setting')
-rw-r--r-- | modules/setting/cache.go | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/modules/setting/cache.go b/modules/setting/cache.go index 618be2482a..7bfea91961 100644 --- a/modules/setting/cache.go +++ b/modules/setting/cache.go @@ -49,6 +49,9 @@ var ( } ) +// MemcacheMaxTTL represents the maximum memcache TTL +const MemcacheMaxTTL = 30 * 24 * time.Hour + func newCacheService() { sec := Cfg.Section("cache") if err := sec.MapTo(&CacheService); err != nil { @@ -85,3 +88,19 @@ func newCacheService() { log.Info("Last Commit Cache Service Enabled") } } + +// TTLSeconds returns the TTLSeconds or unix timestamp for memcache +func (c Cache) TTLSeconds() int64 { + if c.Adapter == "memcache" && c.TTL > MemcacheMaxTTL { + return time.Now().Add(c.TTL).Unix() + } + return int64(c.TTL.Seconds()) +} + +// LastCommitCacheTTLSeconds returns the TTLSeconds or unix timestamp for memcache +func LastCommitCacheTTLSeconds() int64 { + if CacheService.Adapter == "memcache" && CacheService.LastCommit.TTL > MemcacheMaxTTL { + return time.Now().Add(CacheService.LastCommit.TTL).Unix() + } + return int64(CacheService.LastCommit.TTL.Seconds()) +} |