github.com/pbberlin/tools@v0.0.0-20160910141205-7aa5421c2169/os/fsi/dsfs/mcache.go (about) 1 package dsfs 2 3 import ( 4 "strings" 5 "time" 6 7 aelog "google.golang.org/appengine/log" 8 "google.golang.org/appengine/memcache" 9 ) 10 11 func (d *DsDir) MemCacheSet() { 12 miPut := &memcache.Item{ 13 Key: d.Dir + d.BName, 14 Value: []byte("anything"), // sadly - value is ignored 15 Object: &d, 16 Expiration: 3600 * time.Second, 17 } 18 err := memcache.JSON.Set(d.fSys.Ctx(), miPut) 19 if err != nil { 20 aelog.Errorf(d.fSys.Ctx(), "memcache put dir %v => err %v", d.Dir+d.BName, err) 21 } else { 22 // d.Fs.Ctx().Infof("fso memcachd - key %v", d.Dir+d.BName) 23 } 24 } 25 26 func (d *DsDir) MemCacheDelete() { 27 err := memcache.Delete(d.fSys.Ctx(), d.Dir+d.BName) 28 if err != nil { 29 aelog.Errorf(d.fSys.Ctx(), "memcache delete dir %v => err %v", d.Dir+d.BName, err) 30 } 31 } 32 33 func (d *DsDir) MemCacheGet(name string) error { 34 35 unparsedjson, err := memcache.JSON.Get(d.fSys.c, name, d) 36 _ = unparsedjson 37 if err != nil && 38 err != memcache.ErrCacheMiss && 39 !strings.Contains(err.Error(), "invalid security ticket") && 40 !strings.Contains(err.Error(), "Canceled") && 41 true { 42 aelog.Errorf(d.fSys.Ctx(), "%v", err) 43 // panic(err) 44 // aelog.Errorf(fSys.Ctx(),"%v", err) 45 } else if err == memcache.ErrCacheMiss { 46 return err 47 } 48 // d.fSys.Ctx().Infof("memcache get dir %v - success", name) 49 return nil 50 51 }