mirror of https://github.com/go-redis/redis.git
Add hooks to Conn. Fixes #1539
This commit is contained in:
parent
a6876ad84a
commit
e99a39201b
11
redis.go
11
redis.go
|
@ -719,6 +719,7 @@ type conn struct {
|
||||||
baseClient
|
baseClient
|
||||||
cmdable
|
cmdable
|
||||||
statefulCmdable
|
statefulCmdable
|
||||||
|
hooks // TODO: inherit hooks
|
||||||
}
|
}
|
||||||
|
|
||||||
// Conn is like Client, but its pool contains single connection.
|
// Conn is like Client, but its pool contains single connection.
|
||||||
|
@ -743,7 +744,15 @@ func newConn(ctx context.Context, opt *Options, connPool pool.Pooler) *Conn {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Conn) Process(ctx context.Context, cmd Cmder) error {
|
func (c *Conn) Process(ctx context.Context, cmd Cmder) error {
|
||||||
return c.baseClient.process(ctx, cmd)
|
return c.hooks.process(ctx, cmd, c.baseClient.process)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Conn) processPipeline(ctx context.Context, cmds []Cmder) error {
|
||||||
|
return c.hooks.processPipeline(ctx, cmds, c.baseClient.processPipeline)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *Conn) processTxPipeline(ctx context.Context, cmds []Cmder) error {
|
||||||
|
return c.hooks.processTxPipeline(ctx, cmds, c.baseClient.processTxPipeline)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Conn) Pipelined(ctx context.Context, fn func(Pipeliner) error) ([]Cmder, error) {
|
func (c *Conn) Pipelined(ctx context.Context, fn func(Pipeliner) error) ([]Cmder, error) {
|
||||||
|
|
|
@ -295,6 +295,11 @@ var _ = Describe("Client", func() {
|
||||||
|
|
||||||
Expect(tm2).To(BeTemporally("==", tm))
|
Expect(tm2).To(BeTemporally("==", tm))
|
||||||
})
|
})
|
||||||
|
|
||||||
|
It("should Conn", func() {
|
||||||
|
err := rdb.Conn(ctx).Get(ctx, "this-key-does-not-exist").Err()
|
||||||
|
Expect(err).To(Equal(redis.Nil))
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
var _ = Describe("Client timeout", func() {
|
var _ = Describe("Client timeout", func() {
|
||||||
|
|
Loading…
Reference in New Issue