Documentation
¶
Overview ¶
Package retry provides small context-aware retry and backoff primitives.
Index ¶
- func Delay(policy Policy, attempt int) time.Duration
- func Do(ctx context.Context, policy Policy, shouldRetry ShouldRetry, ...) error
- func DoValue[T any](ctx context.Context, policy Policy, shouldRetry ShouldRetry, ...) (T, error)
- func Wait(ctx context.Context, delay time.Duration) error
- type Attempt
- type Policy
- type ShouldRetry
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Do ¶
func Do(ctx context.Context, policy Policy, shouldRetry ShouldRetry, fn func(context.Context) error) error
Do retries fn until it succeeds, shouldRetry rejects the error, attempts are exhausted, or ctx is canceled.
Types ¶
type Policy ¶
type Policy struct {
MaxAttempts int
BaseDelay time.Duration
MaxDelay time.Duration
JitterRatio float64
RandFloat64 func() float64
Sleep func(context.Context, time.Duration) error
OnRetry func(Attempt)
}
Policy configures retry attempts and jittered exponential backoff.
type ShouldRetry ¶
ShouldRetry reports whether an operation error should be retried.
Click to show internal directories.
Click to hide internal directories.