Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Soll Redigo Redis Pool wirklich eine globale Variable sein?

Die einzige andere Lösung, die ich gesehen habe, zum Beispiel in "Passing Context to Interface Methods", ist:

Erstellen Sie eine struct die einen eingebetteten Kontext und unseren handler akzeptiert type, und wir erfüllen immer noch den http.Handler Schnittstelle dank ServeHTTP .

In Ihrem Fall die struct würde den pool enthalten , und der handler Funktion.

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
    }
}