diff --git a/commands.go b/commands.go index dc68bea..7f4cbe0 100644 --- a/commands.go +++ b/commands.go @@ -1114,6 +1114,13 @@ func (c *commandable) ClientList() *StringCmd { return cmd } +func (c *commandable) ClientPause(dur time.Duration) *BoolCmd { + cmd := NewBoolCmd("CLIENT", "PAUSE", formatMs(dur)) + cmd._clusterKeyPos = 0 + c.Process(cmd) + return cmd +} + func (c *commandable) ConfigGet(parameter string) *SliceCmd { cmd := NewSliceCmd("CONFIG", "GET", parameter) cmd._clusterKeyPos = 0 diff --git a/commands_test.go b/commands_test.go index c0ab161..a13ced6 100644 --- a/commands_test.go +++ b/commands_test.go @@ -18,8 +18,10 @@ var _ = Describe("Commands", func() { BeforeEach(func() { client = redis.NewClient(&redis.Options{ - Addr: redisAddr, - PoolTimeout: 30 * time.Second, + Addr: redisAddr, + ReadTimeout: 100 * time.Millisecond, + WriteTimeout: 100 * time.Millisecond, + PoolTimeout: 30 * time.Second, }) }) @@ -75,6 +77,19 @@ var _ = Describe("Commands", func() { Expect(r.Val()).To(Equal("")) }) + It("should ClientPause", func() { + err := client.ClientPause(time.Second).Err() + Expect(err).NotTo(HaveOccurred()) + + Consistently(func() error { + return client.Ping().Err() + }, "500ms").Should(HaveOccurred()) + + Eventually(func() error { + return client.Ping().Err() + }, "1s").ShouldNot(HaveOccurred()) + }) + It("should ConfigGet", func() { r := client.ConfigGet("*") Expect(r.Err()).NotTo(HaveOccurred())