backoff

package
v0.3.1 Latest Latest
Warning

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

Go to latest
Published: May 13, 2024 License: MIT Imports: 2 Imported by: 1

Documentation

Index

Examples

Constants

View Source
const InfiniteDelay time.Duration = 1000000000 * time.Second

Variables

View Source
var GoodBackoff = Backoff{
	ImmediateRetries: 1,

	FixedDelayRetries: 2,
	FixedDelay:        time.Second,

	BackoffRetries:  50,
	MaxBackoffDelay: time.Hour,
}
View Source
var NoBackoff = Backoff{}
View Source
var SlowBackoff = Backoff{
	FixedDelayRetries: 1,
	FixedDelay:        time.Second,

	MinBackoffDelay: 1 * time.Minute,
	BackoffRetries:  20,
	MaxBackoffDelay: 4 * time.Hour,
	BackoffFactor:   4,
}

Functions

This section is empty.

Types

type Backoff

type Backoff struct {
	ImmediateRetries int

	FixedDelayRetries int
	FixedDelay        time.Duration

	BackoffRetries  int
	MinBackoffDelay time.Duration
	MaxBackoffDelay time.Duration
	BackoffFactor   float64
}
Example
b := Backoff{
	ImmediateRetries: 1,

	FixedDelayRetries: 2,
	FixedDelay:        time.Second,

	BackoffRetries:  10,
	MaxBackoffDelay: time.Minute,
}

for a := 1; a <= 15; a++ {
	s := b.DelayAfter(a).Seconds()
	fmt.Printf("after %2d failures delay is %.0f seconds\n", a, s)
}
Output:

after  1 failures delay is 0 seconds
after  2 failures delay is 1 seconds
after  3 failures delay is 1 seconds
after  4 failures delay is 2 seconds
after  5 failures delay is 4 seconds
after  6 failures delay is 8 seconds
after  7 failures delay is 16 seconds
after  8 failures delay is 32 seconds
after  9 failures delay is 60 seconds
after 10 failures delay is 60 seconds
after 11 failures delay is 60 seconds
after 12 failures delay is 60 seconds
after 13 failures delay is 60 seconds
after 14 failures delay is 1000000000 seconds
after 15 failures delay is 1000000000 seconds

func (Backoff) DelayAfter

func (b Backoff) DelayAfter(failedAttempts int) time.Duration

func (Backoff) String

func (b Backoff) String() string

Jump to

Keyboard shortcuts

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