package errorsext
import "github.com/go-playground/pkg/v5/errors"
Index ¶
- Variables
- func DoRetryable[T, E any](ctx context.Context, isRetryFn IsRetryableFn[E], onRetryFn OnRetryFn[E], fn RetryableFn[T, E]) resultext.Result[T, E]
- func IsRetryableHTTP(err error) (retryType string, isRetryable bool)
- func IsRetryableNetwork(err error) (retryType string, isRetryable bool)
- func IsTemporary(err error) bool
- func IsTemporaryConnection(err error) (retryType string, isRetryable bool)
- func IsTimeout(err error) bool
- type IsRetryableFn
- type OnRetryFn
- type RetryableFn
Variables ¶
var ( // ErrMaxAttemptsReached is a placeholder error to use when some retryable even has reached its maximum number of // attempts. ErrMaxAttemptsReached = errors.New("max attempts reached") )
Functions ¶
func DoRetryable ¶
func DoRetryable[T, E any](ctx context.Context, isRetryFn IsRetryableFn[E], onRetryFn OnRetryFn[E], fn RetryableFn[T, E]) resultext.Result[T, E]
DoRetryable will execute the provided functions code and automatically retry using the provided retry function.
func IsRetryableHTTP ¶
IsRetryableHTTP returns if the provided error is considered retryable HTTP error. It also returns the type, in string form, for optional logging and metrics use.
func IsRetryableNetwork ¶
IsRetryableNetwork returns if the provided error is a retryable network related error. It also returns the type, in string form, for optional logging and metrics use.
func IsTemporary ¶
IsTemporary returns true if the provided error is considered retryable temporary error by testing if it complies with an interface implementing `Temporary() bool` and calling the function.
func IsTemporaryConnection ¶
IsTemporaryConnection returns if the provided error was a low level retryable connection error. It also returns the type, in string form, for optional logging and metrics use.
func IsTimeout ¶
IsTimeout returns true if the provided error is considered a retryable timeout error by testing if it complies with an interface implementing `Timeout() bool` and calling the function.
Types ¶
type IsRetryableFn ¶
IsRetryableFn is called to determine if the error is retryable and optionally returns the reason for logging and metrics.
type OnRetryFn ¶
type OnRetryFn[E any] func(ctx context.Context, originalErr E, reason string, attempt int) optionext.Option[E]
OnRetryFn is called after IsRetryableFn returns true and before the retry is attempted.
this allows for interception, short-circuiting and adding of backoff strategies.
type RetryableFn ¶
RetryableFn is a function that can be retried.
Source Files ¶
- Version
- v5.24.0
- Published
- Jan 21, 2024
- Platform
- darwin/amd64
- Imports
- 6 packages
- Last checked
- 32 minutes ago –
Tools for package owners.