retry

package
v3.0.0 Latest Latest
Warning

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

Go to latest
Published: Oct 26, 2023 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var RetriesAttemptedCelling int

Functions

This section is empty.

Types

type BackoffDelayer

type BackoffDelayer interface {
	BackoffDelay(attempt int, err error) (time.Duration, error)
}

type ConnectionErrorRetryable

type ConnectionErrorRetryable struct{}

func (*ConnectionErrorRetryable) IsErrorRetryable

func (*ConnectionErrorRetryable) IsErrorRetryable(err error) bool

type EqualJitterBackoff

type EqualJitterBackoff struct {
	// contains filtered or unexported fields
}

func NewEqualJJitterBackoff

func NewEqualJJitterBackoff(baseDelay time.Duration, maxBackoff time.Duration) *EqualJitterBackoff

func (*EqualJitterBackoff) BackoffDelay

func (j *EqualJitterBackoff) BackoffDelay(attempt int, err error) (time.Duration, error)

type ErrorRetryable

type ErrorRetryable interface {
	IsErrorRetryable(error) bool
}

type FixedDelayBackoff

type FixedDelayBackoff struct {
	// contains filtered or unexported fields
}

func NewFixedDelayBackoff

func NewFixedDelayBackoff(fixedBackoff time.Duration) *FixedDelayBackoff

func (*FixedDelayBackoff) BackoffDelay

func (j *FixedDelayBackoff) BackoffDelay(attempt int, err error) (time.Duration, error)

type FullJitterBackoff

type FullJitterBackoff struct {
	// contains filtered or unexported fields
}

func NewFullJitterBackoff

func NewFullJitterBackoff(baseDelay time.Duration, maxBackoff time.Duration) *FullJitterBackoff

func (*FullJitterBackoff) BackoffDelay

func (j *FullJitterBackoff) BackoffDelay(attempt int, err error) (time.Duration, error)

type HTTPStatusCodeRetryable

type HTTPStatusCodeRetryable struct {
}

func (*HTTPStatusCodeRetryable) IsErrorRetryable

func (*HTTPStatusCodeRetryable) IsErrorRetryable(err error) bool

type NopRetryer

type NopRetryer struct{}

func (NopRetryer) IsErrorRetryable

func (NopRetryer) IsErrorRetryable(error) bool

func (NopRetryer) MaxAttempts

func (NopRetryer) MaxAttempts() int

func (NopRetryer) RetryDelay

func (NopRetryer) RetryDelay(int, error) (time.Duration, error)

type RetryOptions

type RetryOptions struct {
	MaxAttempts     int
	MaxBackoff      time.Duration
	BaseDelay       time.Duration
	Backoff         BackoffDelayer
	ErrorRetryables []ErrorRetryable
}

type Retryer

type Retryer interface {
	IsErrorRetryable(error) bool
	MaxAttempts() int
	RetryDelay(attempt int, opErr error) (time.Duration, error)
}

type Standard

type Standard struct {
	// contains filtered or unexported fields
}

func NewStandard

func NewStandard(fnOpts ...func(*RetryOptions)) *Standard

func (*Standard) IsErrorRetryable

func (s *Standard) IsErrorRetryable(err error) bool

func (*Standard) MaxAttempts

func (s *Standard) MaxAttempts() int

func (*Standard) RetryDelay

func (s *Standard) RetryDelay(attempt int, err error) (time.Duration, error)

Jump to

Keyboard shortcuts

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