1
0
mirror of https://github.com/astaxie/beego.git synced 2024-11-25 19:00:55 +00:00

add timeout description for file and memory cache.

This commit is contained in:
傅小黑 2013-12-24 21:56:48 +08:00
parent 053e7a6aa6
commit 5b1afcdb5a
2 changed files with 4 additions and 2 deletions

3
cache/file.go vendored
View File

@ -144,12 +144,13 @@ func (this *FileCache) Get(key string) interface{} {
// Put value into file cache. // Put value into file cache.
// timeout means how long to keep this file, unit of ms. // timeout means how long to keep this file, unit of ms.
// if timeout equals FileCacheEmbedExpiry(default is 0), cache this item forever.
func (this *FileCache) Put(key string, val interface{}, timeout int64) error { func (this *FileCache) Put(key string, val interface{}, timeout int64) error {
filename := this.getCacheFileName(key) filename := this.getCacheFileName(key)
var item FileCacheItem var item FileCacheItem
item.Data = val item.Data = val
if timeout == FileCacheEmbedExpiry { if timeout == FileCacheEmbedExpiry {
item.Expired = time.Now().Unix() + (86400 * 365 * 10) //10年 item.Expired = time.Now().Unix() + (86400 * 365 * 10) // ten years
} else { } else {
item.Expired = time.Now().Unix() + timeout item.Expired = time.Now().Unix() + timeout
} }

3
cache/memory.go vendored
View File

@ -26,7 +26,7 @@ type MemoryCache struct {
lock sync.RWMutex lock sync.RWMutex
dur time.Duration dur time.Duration
items map[string]*MemoryItem items map[string]*MemoryItem
Every int // run an expiration check Every cloc; time Every int // run an expiration check Every clock time
} }
// NewMemoryCache returns a new MemoryCache. // NewMemoryCache returns a new MemoryCache.
@ -52,6 +52,7 @@ func (bc *MemoryCache) Get(name string) interface{} {
} }
// Put cache to memory. // Put cache to memory.
// if expired is 0, it will be cleaned by next gc operation ( default gc clock is 1 minute).
func (bc *MemoryCache) Put(name string, value interface{}, expired int64) error { func (bc *MemoryCache) Put(name string, value interface{}, expired int64) error {
bc.lock.Lock() bc.lock.Lock()
defer bc.lock.Unlock() defer bc.lock.Unlock()