Use random node when there are no channels

This commit is contained in:
Vladimir Mihailenco 2019-03-07 12:19:03 +02:00
parent b665d8fcf2
commit 5c012a3872
2 changed files with 14 additions and 3 deletions

View File

@ -1537,10 +1537,13 @@ func (c *ClusterClient) pubSub() *PubSub {
panic("node != nil")
}
slot := hashtag.Slot(channels[0])
var err error
node, err = c.slotMasterNode(slot)
if len(channels) > 0 {
slot := hashtag.Slot(channels[0])
node, err = c.slotMasterNode(slot)
} else {
node, err = c.nodes.Random()
}
if err != nil {
return nil, err
}

View File

@ -512,6 +512,14 @@ var _ = Describe("ClusterClient", func() {
return nil
}, 30*time.Second).ShouldNot(HaveOccurred())
})
It("supports PubSub.Ping without channels", func() {
pubsub := client.Subscribe()
defer pubsub.Close()
err := pubsub.Ping()
Expect(err).NotTo(HaveOccurred())
})
}
Describe("ClusterClient", func() {