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 @@ -454,6 +454,14 @@ func (n *clusterNode) SetLastLatencyMeasurement(t time.Time) {
454
454
}
455
455
}
456
456
457
+ func (n * clusterNode ) Loading () bool {
458
+ ctx , cancel := context .WithTimeout (context .Background (), 100 * time .Millisecond )
459
+ defer cancel ()
460
+
461
+ err := n .Client .Ping (ctx ).Err ()
462
+ return err != nil && isLoadingError (err )
463
+ }
464
+
457
465
//------------------------------------------------------------------------------
458
466
459
467
type clusterNodes struct {
@@ -763,7 +771,8 @@ func (c *clusterState) slotSlaveNode(slot int) (*clusterNode, error) {
763
771
case 1 :
764
772
return nodes [0 ], nil
765
773
case 2 :
766
- if slave := nodes [1 ]; ! slave .Failing () {
774
+ slave := nodes [1 ]
775
+ if ! slave .Failing () && ! slave .Loading () {
767
776
return slave , nil
768
777
}
769
778
return nodes [0 ], nil
@@ -772,7 +781,7 @@ func (c *clusterState) slotSlaveNode(slot int) (*clusterNode, error) {
772
781
for i := 0 ; i < 10 ; i ++ {
773
782
n := rand .Intn (len (nodes )- 1 ) + 1
774
783
slave = nodes [n ]
775
- if ! slave .Failing () {
784
+ if ! slave .Failing () && ! slave . Loading () {
776
785
return slave , nil
777
786
}
778
787
}
You can’t perform that action at this time.
0 commit comments