Record Class BackoffStrategy.ExponentialWithJitter
java.lang.Object
java.lang.Record
cloud.opencode.base.core.retry.BackoffStrategy.ExponentialWithJitter
- Record Components:
initialDelay- the initial delay - 初始延迟multiplier- the multiplier (must be >= 1.0) - 乘数(必须 >= 1.0)jitterFactor- jitter factor in [0.0, 1.0] - 抖动因子,范围 [0.0, 1.0]
- All Implemented Interfaces:
BackoffStrategy
- Enclosing interface:
BackoffStrategy
public static record BackoffStrategy.ExponentialWithJitter(Duration initialDelay, double multiplier, double jitterFactor)
extends Record
implements BackoffStrategy
Exponential backoff with jitter - adds randomness to prevent thundering herd.
带抖动的指数退避 - 添加随机性以防止惊群效应。
- Since:
- JDK 25, opencode-base-core V1.0.3
- Author:
- Leon Soo www.LeonSoo.com
-
Nested Class Summary
Nested classes/interfaces inherited from interface BackoffStrategy
BackoffStrategy.Exponential, BackoffStrategy.ExponentialWithJitter, BackoffStrategy.Fibonacci, BackoffStrategy.Fixed -
Constructor Summary
ConstructorsConstructorDescriptionExponentialWithJitter(Duration initialDelay, double multiplier, double jitterFactor) Creates an instance of aExponentialWithJitterrecord class. -
Method Summary
Modifier and TypeMethodDescriptiondelay(int attempt) Calculate the delay for the given attempt number.final booleanIndicates whether some other object is "equal to" this one.final inthashCode()Returns a hash code value for this object.Returns the value of theinitialDelayrecord component.doubleReturns the value of thejitterFactorrecord component.doubleReturns the value of themultiplierrecord component.final StringtoString()Returns a string representation of this record class.
-
Constructor Details
-
ExponentialWithJitter
Creates an instance of aExponentialWithJitterrecord class.- Parameters:
initialDelay- the value for theinitialDelayrecord componentmultiplier- the value for themultiplierrecord componentjitterFactor- the value for thejitterFactorrecord component
-
-
Method Details
-
delay
Description copied from interface:BackoffStrategyCalculate the delay for the given attempt number. 计算给定重试次数的延迟。- Specified by:
delayin interfaceBackoffStrategy- Parameters:
attempt- attempt number, starting from 1 - 重试次数,从1开始- Returns:
- the delay duration - 延迟时长
-
toString
-
hashCode
-
equals
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared withObjects::equals(Object,Object); primitive components are compared with thecomparemethod from their corresponding wrapper classes. -
initialDelay
Returns the value of theinitialDelayrecord component.- Returns:
- the value of the
initialDelayrecord component
-
multiplier
public double multiplier()Returns the value of themultiplierrecord component.- Returns:
- the value of the
multiplierrecord component
-
jitterFactor
public double jitterFactor()Returns the value of thejitterFactorrecord component.- Returns:
- the value of the
jitterFactorrecord component
-