backoff

package
v2.0.0 Latest Latest
Warning

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

Go to latest
Published: Apr 27, 2026 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Overview

Package backoff provides strategies for retrying operations with exponential backoff.

Index

Constants

This section is empty.

Variables

View Source
var DefaultConfig = Config{
	BaseDelay:  1.0 * time.Second,
	Multiplier: 1.6,
	Jitter:     0.2,
	MaxDelay:   120 * time.Second,
}

DefaultConfig defines the default configuration for backoff.

View Source
var DefaultExponential = Exponential{Config: DefaultConfig}

DefaultExponential defines the default exponential backoff strategy.

Functions

This section is empty.

Types

type Config

type Config struct {
	// BaseDelay is the amount of time to backoff after the first failure.
	BaseDelay time.Duration `mapstructure:"baseDelay"  default:"1s"`
	// Multiplier is the factor with which to multiply backoffs after a
	// failed retry. Should ideally be greater than 1.
	Multiplier float64 `mapstructure:"multiplier" default:"1.6"`
	// Jitter is the factor with which backoffs are randomized.
	Jitter float64 `mapstructure:"jitter"     default:"0.2"`
	// MaxDelay is the upper bound of backoff delay.
	MaxDelay time.Duration `mapstructure:"maxDelay"   default:"2m"`
}

Config defines the configuration options for backoff.

type Exponential

type Exponential struct {
	// Config contains all options to configure the backoff algorithm.
	Config Config
}

Exponential implements an exponential backoff strategy.

func (Exponential) Backoff

func (bc Exponential) Backoff(retries int) time.Duration

Backoff returns the amount of time to wait before the next retry given the number of retries.

type Strategy

type Strategy interface {
	// Backoff returns the amount of time to wait before the next retry given
	// the number of consecutive failures.
	Backoff(retries int) time.Duration
}

Strategy defines the methodology for backing off after a otlpgrpc connection failure.

Jump to

Keyboard shortcuts

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