backoff

package
v1.5.1 Latest Latest
Warning

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

Go to latest
Published: Dec 14, 2022 License: Apache-2.0 Imports: 6 Imported by: 40

Documentation

Overview

Package backoff allows retrying an operation with backoff.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsRetryable added in v1.3.0

func IsRetryable(err error, retry ...codes.Code) bool

IsRetryable returns false unless the error is explicitly retriable per https://godoc.org/google.golang.org/grpc/codes, or if the error codes is in retry. codes.OK is not retryable.

func RetriableErrorf added in v1.3.0

func RetriableErrorf(format string, a ...interface{}) error

RetriableErrorf wraps a formatted string into a RetriableError.

Types

type Backoff

type Backoff struct {
	Min    time.Duration // Duration of the first pause.
	Max    time.Duration // Max duration of a pause.
	Factor float64       // The factor of duration increase between iterations.
	Jitter bool          // Add random noise to pauses.
	// contains filtered or unexported fields
}

Backoff specifies the parameters of the backoff algorithm. Works correctly if 0 < Min <= Max <= 2^62 (nanosec), and Factor >= 1.

func (*Backoff) Duration

func (b *Backoff) Duration() time.Duration

Duration returns the time to wait on current retry iteration. Every time Duration is called, the returned value will exponentially increase by Factor until Backoff.Max. If Jitter is enabled, will add an additional random value between 0 and the duration, so the result can at most double.

func (*Backoff) Reset

func (b *Backoff) Reset()

Reset sets the internal state back to first retry iteration.

func (*Backoff) Retry

func (b *Backoff) Retry(ctx context.Context, f func() error, retry ...codes.Code) error

Retry calls a function until it succeeds or the context is done. It will backoff if the function returns a retryable error. Once the context is done, retries will end and the most recent error will be returned. Backoff is not reset by this function.

type RetriableError added in v1.3.0

type RetriableError string

RetriableError explicitly instructs Backoff to retry.

func (RetriableError) Error added in v1.3.0

func (re RetriableError) Error() string

Error returns string representation of the retriable error.

Jump to

Keyboard shortcuts

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