Documentation ¶
Overview ¶
Package retry provides retry logic.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Call ¶
Call calls the supplied function f repeatedly, using the isRetryable function and the provided backoff parameters to control the repetition.
When f returns nil, Call immediately returns nil.
When f returns an error for which isRetryable returns false, Call immediately returns that error.
When f returns an error for which isRetryable returns true, Call sleeps for the provided backoff value and invokes f again.
When the provided context is done, Retry returns a ContextError that includes both ctx.Error() and the last error returned by f, or nil if there isn't one.
Types ¶
type ContextError ¶
type ContextError struct { CtxErr error // The error obtained from ctx.Err() FuncErr error // The error obtained from the function being retried, or nil }
A ContextError contains both a context error (either context.Canceled or context.DeadlineExceeded), and the last error from the function being retried, or nil if the function was never called.
func (*ContextError) Error ¶
func (e *ContextError) Error() string
func (*ContextError) Is ¶
func (e *ContextError) Is(target error) bool