Documentation ¶
Index ¶
- Variables
- func Check(err error) (m retryMode)
- func IsOperationIdempotent(ctx context.Context) bool
- func Retry(ctx context.Context, isIdempotentOperation bool, op retryOperation) (err error)
- func Wait(ctx context.Context, fastBackoff Backoff, slowBackoff Backoff, m retryMode, ...) error
- func WithIdempotentOperation(ctx context.Context) context.Context
- func WithNonIdempotentOperation(ctx context.Context) context.Context
- type Backoff
Constants ¶
This section is empty.
Variables ¶
View Source
var ( FastBackoff = logBackoff{ SlotDuration: fastSlot, Ceiling: 6, } SlowBackoff = logBackoff{ SlotDuration: slowSlot, Ceiling: 6, } )
Default parameters used by Retry() functions within different sub packages.
Functions ¶
func IsOperationIdempotent ¶
IsOperationIdempotent returns the flag for retry with no idempotent errors
func Retry ¶
Retry provide the best effort fo retrying operation Retry implements internal busy loop until one of the following conditions is met: - deadline was canceled or deadlined - retry operation returned nil as error Warning: if deadline without deadline or cancellation func Retry will be worked infinite
func WithIdempotentOperation ¶
WithIdempotentOperation returns a copy of parent context with idempotent operation feature
Types ¶
type Backoff ¶
type Backoff interface { // Wait maps index of the retry to a channel which fulfillment means that // delay is over. // // Note that retry index begins from 0 and 0-th index means that it is the // first retry attempt after an initial error. Wait(n int) <-chan time.Time }
Backoff is the interface that contains logic of delaying operation retry.
Click to show internal directories.
Click to hide internal directories.