retry

package
v1.2.1 Latest Latest
Warning

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

Go to latest
Published: Mar 7, 2025 License: Apache-2.0 Imports: 9 Imported by: 1

Documentation

Index

Constants

View Source
const (
	DefaultMaxAttempts = 3
	DefaultMaxBackoff  = 20 * time.Second
	DefaultBaseDelay   = 200 * time.Millisecond
)

Variables

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 (c *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 ServiceErrorCodeRetryable

type ServiceErrorCodeRetryable struct {
}

func (*ServiceErrorCodeRetryable) IsErrorRetryable

func (*ServiceErrorCodeRetryable) IsErrorRetryable(err error) bool

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