mirror of
https://github.com/redis/go-redis.git
synced 2025-04-17 20:17:02 +03:00
Added the support for WAITAOF which is a new command in redis ver7.2.0 (#2629)
* implemented WaitAOF command for the redis ver7.2.0 * updated the test corresponding to WaitAOF --------- Co-authored-by: Chayim <chayim@users.noreply.github.com> Co-authored-by: ofekshenawa <104765379+ofekshenawa@users.noreply.github.com>
This commit is contained in:
parent
7acc0cd254
commit
0637c53f10
@ -558,6 +558,13 @@ func (c cmdable) Wait(ctx context.Context, numSlaves int, timeout time.Duration)
|
|||||||
return cmd
|
return cmd
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c cmdable) WaitAOF(ctx context.Context, numLocal, numSlaves int, timeout time.Duration) *IntCmd {
|
||||||
|
cmd := NewIntCmd(ctx, "waitAOF", numLocal, numSlaves, int(timeout/time.Millisecond))
|
||||||
|
cmd.setReadTimeout(timeout)
|
||||||
|
_ = c(ctx, cmd)
|
||||||
|
return cmd
|
||||||
|
}
|
||||||
|
|
||||||
func (c statefulCmdable) Select(ctx context.Context, index int) *StatusCmd {
|
func (c statefulCmdable) Select(ctx context.Context, index int) *StatusCmd {
|
||||||
cmd := NewStatusCmd(ctx, "select", index)
|
cmd := NewStatusCmd(ctx, "select", index)
|
||||||
_ = c(ctx, cmd)
|
_ = c(ctx, cmd)
|
||||||
|
@ -95,6 +95,18 @@ var _ = Describe("Commands", func() {
|
|||||||
Expect(time.Now()).To(BeTemporally("~", start.Add(wait), 3*time.Second))
|
Expect(time.Now()).To(BeTemporally("~", start.Add(wait), 3*time.Second))
|
||||||
})
|
})
|
||||||
|
|
||||||
|
It("should WaitAOF", func() {
|
||||||
|
const waitAOF = 3 * time.Second
|
||||||
|
Skip("flaky test")
|
||||||
|
|
||||||
|
// assuming that the redis instance doesn't have AOF enabled
|
||||||
|
start := time.Now()
|
||||||
|
val, err := client.WaitAOF(ctx, 1, 1, waitAOF).Result()
|
||||||
|
Expect(err).NotTo(HaveOccurred())
|
||||||
|
Expect(val).NotTo(ContainSubstring("ERR WAITAOF cannot be used when numlocal is set but appendonly is disabled"))
|
||||||
|
Expect(time.Now()).To(BeTemporally("~", start.Add(waitAOF), 3*time.Second))
|
||||||
|
})
|
||||||
|
|
||||||
It("should Select", func() {
|
It("should Select", func() {
|
||||||
pipe := client.Pipeline()
|
pipe := client.Pipeline()
|
||||||
sel := pipe.Select(ctx, 1)
|
sel := pipe.Select(ctx, 1)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user