mirror of https://github.com/go-redis/redis.git
Merge pull request #987 from go-redis/fix/channels-random-node
Use random node when there are no channels
This commit is contained in:
commit
0d39ee8976
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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() {
|
||||
|
|
Loading…
Reference in New Issue