Explorar o código

Add ExponentialReconnectionPolicy.MaxInterval (#1407)

Allow specifying MaxInterval for exponential reconnection policy.
Ingo Oeser %!s(int64=5) %!d(string=hai) anos
pai
achega
ae7adae99b
Modificáronse 1 ficheiros con 6 adicións e 1 borrados
  1. 6 1
      policies.go

+ 6 - 1
policies.go

@@ -953,10 +953,15 @@ func (c *ConstantReconnectionPolicy) GetMaxRetries() int {
 type ExponentialReconnectionPolicy struct {
 	MaxRetries      int
 	InitialInterval time.Duration
+	MaxInterval     time.Duration
 }
 
 func (e *ExponentialReconnectionPolicy) GetInterval(currentRetry int) time.Duration {
-	return getExponentialTime(e.InitialInterval, math.MaxInt16*time.Second, currentRetry)
+	max := e.MaxInterval
+	if max < e.InitialInterval {
+		max = math.MaxInt16 * time.Second
+	}
+	return getExponentialTime(e.InitialInterval, max, currentRetry)
 }
 
 func (e *ExponentialReconnectionPolicy) GetMaxRetries() int {