retry

package
v1.11.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 27, 2021 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
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

View Source
var (
	// ConfigKey context key for GrpcRetryConfig
	ConfigKey = contextKey{}
)

Functions

func IsStatusCodeRetryable

func IsStatusCodeRetryable(status *status.Status) bool

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL