File tree Expand file tree Collapse file tree 1 file changed +11
-2
lines changed Expand file tree Collapse file tree 1 file changed +11
-2
lines changed Original file line number Diff line number Diff line change @@ -445,6 +445,14 @@ func (n *clusterNode) SetLastLatencyMeasurement(t time.Time) {
445445 }
446446}
447447
448+ func (n * clusterNode ) Loading () bool {
449+ ctx , cancel := context .WithTimeout (context .Background (), 100 * time .Millisecond )
450+ defer cancel ()
451+
452+ err := n .Client .Ping (ctx ).Err ()
453+ return err != nil && isLoadingError (err )
454+ }
455+
448456//------------------------------------------------------------------------------
449457
450458type clusterNodes struct {
@@ -754,7 +762,8 @@ func (c *clusterState) slotSlaveNode(slot int) (*clusterNode, error) {
754762 case 1 :
755763 return nodes [0 ], nil
756764 case 2 :
757- if slave := nodes [1 ]; ! slave .Failing () {
765+ slave := nodes [1 ]
766+ if ! slave .Failing () && ! slave .Loading () {
758767 return slave , nil
759768 }
760769 return nodes [0 ], nil
@@ -763,7 +772,7 @@ func (c *clusterState) slotSlaveNode(slot int) (*clusterNode, error) {
763772 for i := 0 ; i < 10 ; i ++ {
764773 n := rand .Intn (len (nodes )- 1 ) + 1
765774 slave = nodes [n ]
766- if ! slave .Failing () {
775+ if ! slave .Failing () && ! slave . Loading () {
767776 return slave , nil
768777 }
769778 }
You can’t perform that action at this time.
0 commit comments