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) {
445
445
}
446
446
}
447
447
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
+
448
456
//------------------------------------------------------------------------------
449
457
450
458
type clusterNodes struct {
@@ -754,7 +762,8 @@ func (c *clusterState) slotSlaveNode(slot int) (*clusterNode, error) {
754
762
case 1 :
755
763
return nodes [0 ], nil
756
764
case 2 :
757
- if slave := nodes [1 ]; ! slave .Failing () {
765
+ slave := nodes [1 ]
766
+ if ! slave .Failing () && ! slave .Loading () {
758
767
return slave , nil
759
768
}
760
769
return nodes [0 ], nil
@@ -763,7 +772,7 @@ func (c *clusterState) slotSlaveNode(slot int) (*clusterNode, error) {
763
772
for i := 0 ; i < 10 ; i ++ {
764
773
n := rand .Intn (len (nodes )- 1 ) + 1
765
774
slave = nodes [n ]
766
- if ! slave .Failing () {
775
+ if ! slave .Failing () && ! slave . Loading () {
767
776
return slave , nil
768
777
}
769
778
}
You can’t perform that action at this time.
0 commit comments