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
cmdable
statefulCmdable
hooks // TODO: inherit hooks
}
// 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 {
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) {

View File

@ -295,6 +295,11 @@ var _ = Describe("Client", func() {
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() {