retry

package
v1.5.1 Latest Latest
Warning

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

Go to latest
Published: Dec 20, 2019 License: MPL-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Backoff

type Backoff struct {
	// Initial time to wait. A Backoff call will change this value.
	InitialBackoff time.Duration
	// Maximum time returned.
	MaxBackoff time.Duration
	// For a Linear backoff, InitialBackoff will be multiplied by Multiplier
	// after each call.
	Multiplier float64
}

Backoff is a self contained backoff time calculator. This struct should be passed around as a copy as it changes its own fields upon any Backoff call. Backoff is not thread safe. For now only a Linear backoff call is implemented and the Exponential call will be implemented when needed.

func (*Backoff) Exponential added in v1.4.2

func (lb *Backoff) Exponential() time.Duration

Exponential backoff panics: not implemented, yet.

func (*Backoff) Linear

func (lb *Backoff) Linear() time.Duration

Linear Backoff returns a linearly increasing Duration.

n = n * Multiplier.

the first value of n is InitialBackoff. n is maxed by MaxBackoff.

type Config

type Config struct {
	// The operation will be retried until StartTimeout has elapsed. 0 means
	// forever.
	StartTimeout time.Duration

	// RetryDelay gives the time elapsed after a failure and before we try
	// again. Returns 2s by default.
	RetryDelay func() time.Duration

	// Max number of retries, 0 means infinite
	Tries int

	// ShouldRetry tells wether error should be retried. Nil defaults to always
	// true.
	ShouldRetry func(error) bool
}

Config represents a retry config

func (Config) Run

func (cfg Config) Run(ctx context.Context, fn func(context.Context) error) error

Run fn until context is cancelled up until StartTimeout time has passed.

type RetryExhaustedError added in v1.4.1

type RetryExhaustedError struct {
	Err error
}

func (*RetryExhaustedError) Error added in v1.4.1

func (err *RetryExhaustedError) Error() string

Jump to

Keyboard shortcuts

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