Add hooks to Conn. Fixes #1539

This commit is contained in:
Vladimir Mihailenco 2020-10-17 15:21:09 +03:00
parent a6876ad84a
commit e99a39201b
2 changed files with 15 additions and 1 deletions

View File

@ -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) {

View File

@ -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() {