Documentation ¶
Index ¶
- Variables
- func DoRetryable[T, E any](ctx context.Context, isRetryFn IsRetryableFn[E], onRetryFn OnRetryFn[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
Constants ¶
This section is empty.
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 ¶ added in v5.17.0
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.
Types ¶
type IsRetryableFn ¶ added in v5.17.0
IsRetryableFn is called to determine if the error is retryable and optionally returns the reason for logging and metrics.
type OnRetryFn ¶ added in v5.17.0
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.