Documentation
¶
Overview ¶
Package strategy provides a way to define how retry is performed.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Breaker ¶
type Breaker = interface { // Done returns a channel that's closed when a cancellation signal occurred. Done() <-chan struct{} // If Done is not yet closed, Err returns nil. // If Done is closed, Err returns a non-nil error. // After Err returns a non-nil error, successive calls to Err return the same error. Err() error }
A Breaker carries a cancellation signal to interrupt an action execution.
It is a subset of the built-in context and github.com/kamilsk/breaker interfaces.
type Strategy ¶
Strategy defines a function that Retry calls before every successive attempt to determine whether it should make the next attempt or not. Returning true allows for the next attempt to be made. Returning false halts the retrying process and returns the last error returned by the called Action.
The strategy will be passed an "attempt" number on each successive retry iteration, starting with a 0 value before the first attempt is actually made. This allows for a pre-action delay, etc.
func Backoff ¶
Backoff creates a Strategy that waits before each attempt, with a duration as defined by the given backoff.Algorithm.
func BackoffWithJitter ¶
func BackoffWithJitter( algorithm func(attempt uint) time.Duration, transformation func(duration time.Duration) time.Duration, ) Strategy
BackoffWithJitter creates a Strategy that waits before each attempt, with a duration as defined by the given backoff.Algorithm and jitter.Transformation.
func Delay ¶
Delay creates a Strategy that waits the given duration before the first attempt is made.