backoff

package
v0.2.1 Latest Latest
Warning

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

Go to latest
Published: Dec 30, 2022 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Overview

Package backoff provides a back-off timer type.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Backoff

type Backoff struct {

	// NewTimer is the function that acts like time.NewTimer.
	// It's for use in unit tests.
	NewTimer func(time.Duration) *time.Timer

	// LogLongerThan sets the minimum time of a single backoff interval
	// before we mention it in the log.
	LogLongerThan time.Duration
	// contains filtered or unexported fields
}

Backoff tracks state the history of consecutive failures and sleeps an increasing amount of time, up to a provided limit.

func NewBackoff

func NewBackoff(name string, logf func(string, ...any), maxBackoff time.Duration) *Backoff

NewBackoff returns a new Backoff timer with the provided name (for logging), logger, and max backoff time. By default, all failures (calls to BackOff with a non-nil err) are logged unless the returned Backoff.LogLongerThan is adjusted.

func (*Backoff) BackOff

func (b *Backoff) BackOff(ctx context.Context, err error)

Backoff sleeps an increasing amount of time if err is non-nil. and the context is not a It resets the backoff schedule once err is nil.

Jump to

Keyboard shortcuts

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