Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

O Redigo Redis Pool realmente deveria ser uma variável global?


A única outra solução que vi, por exemplo, em "Passing Context to Interface Methods" é:

crie uma struct que aceita um contexto incorporado e nosso handler tipo, e ainda satisfazemos o http.Handler interface graças a ServeHTTP .

No seu caso, a struct incluiria o pool , e o handler função.
type appContext struct {
    pool Pool
}

type appHandler struct {
    *appContext
    h func(a *appContext, w http.ResponseWriter, r *http.Request) (int, error)
}

func (ah appHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
   ...
}


func main() {
    context := &appContext{
        pool:    ...,
        // any other data
    }
}