Documentation ¶
Index ¶
- Constants
- Variables
- func IsStatusCodeRetryable(status *status.Status) bool
- func NewRetryOptionsInterceptor() grpc.UnaryClientInterceptor
- type GrpcRetryConfig
- func (g *GrpcRetryConfig) SetBackoffCoefficient(backoffCoefficient float64)
- func (g *GrpcRetryConfig) SetExpirationInterval(expirationInterval time.Duration)
- func (g *GrpcRetryConfig) SetJitter(jitter float64)
- func (g *GrpcRetryConfig) SetMaximumAttempts(maximumAttempts int)
- func (g *GrpcRetryConfig) SetMaximumInterval(maximumInterval time.Duration)
Constants ¶
const ( // UnlimitedMaximumAttempts when maximum attempts is set to this special value, then the number of attempts is unlimited. UnlimitedMaximumAttempts = 0 // UnlimitedInterval when maximum interval is set to this special value, then there is no upper bound on the retry delay. // Should not be used together with unlimited attempts as resulting retry interval can grow to unreasonable values. UnlimitedInterval = 0 // DefaultBackoffCoefficient is default backOffCoefficient for retryPolicy DefaultBackoffCoefficient = 2.0 // DefaultMaximumInterval is default maximum amount of time for an individual retry. DefaultMaximumInterval = 10 * time.Second // DefaultExpirationInterval is default expiration time for all retry attempts. DefaultExpirationInterval = time.Minute // DefaultMaximumAttempts is default maximum number of attempts. DefaultMaximumAttempts = UnlimitedMaximumAttempts // DefaultJitter is a default jitter applied on the backoff interval for delay randomization. DefaultJitter = 0.2 )
Variables ¶
var (
// ConfigKey context key for GrpcRetryConfig
ConfigKey = contextKey{}
)
Functions ¶
func IsStatusCodeRetryable ¶
IsStatusCodeRetryable returns true if error code in the status is retryable.
func NewRetryOptionsInterceptor ¶
func NewRetryOptionsInterceptor() grpc.UnaryClientInterceptor
NewRetryOptionsInterceptor creates a new gRPC interceptor that populates retry options for each call based on values provided in the context.
Types ¶
type GrpcRetryConfig ¶
type GrpcRetryConfig struct {
// contains filtered or unexported fields
}
GrpcRetryConfig defines required configuration for exponential backoff function that is supplied to gRPC retrier.
func NewGrpcRetryConfig ¶
func NewGrpcRetryConfig(initialInterval time.Duration) *GrpcRetryConfig
NewGrpcRetryConfig creates new retry config with specified initial interval and defaults for other parameters. Use SetXXX functions on this config in order to customize values.
func (*GrpcRetryConfig) SetBackoffCoefficient ¶
func (g *GrpcRetryConfig) SetBackoffCoefficient(backoffCoefficient float64)
SetBackoffCoefficient sets rate at which backoff coefficient will change.
func (*GrpcRetryConfig) SetExpirationInterval ¶
func (g *GrpcRetryConfig) SetExpirationInterval(expirationInterval time.Duration)
SetExpirationInterval defines total amount of time that can be used for all retry attempts. Note that this value is ignored if deadline is set on the context.
func (*GrpcRetryConfig) SetJitter ¶
func (g *GrpcRetryConfig) SetJitter(jitter float64)
SetJitter defines level of randomization for each delay interval. For example 0.2 would mex target +- 20%
func (*GrpcRetryConfig) SetMaximumAttempts ¶
func (g *GrpcRetryConfig) SetMaximumAttempts(maximumAttempts int)
SetMaximumAttempts defines maximum total number of retry attempts.
func (*GrpcRetryConfig) SetMaximumInterval ¶
func (g *GrpcRetryConfig) SetMaximumInterval(maximumInterval time.Duration)
SetMaximumInterval defines maximum amount of time between attempts.