예제 #1
0
func (c *Context) cache() *cache.Cache {
	ca, err := cache.New(c.app.cfg.Cache)
	if err != nil {
		panic(err)
	}
	if conn, ok := ca.Connection().(contextSetter); ok {
		ctx := appengine.NewContext(c.R)
		conn.SetContext(ctx)
	}
	return ca
}
예제 #2
0
파일: std.go 프로젝트: rainycape/gondola
func (app *App) cache() (*cache.Cache, error) {
	if app.c == nil {
		var err error
		app.locked(func() {
			if app.c != nil {
				return
			}
			if app.parent != nil {
				app.c, err = app.parent.cache()
				return
			}
			app.c, err = cache.New(app.cfg.Cache)
		})
		if err != nil {
			return nil, err
		}
	}
	return app.c, nil
}