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.