Documentation ¶
Index ¶
- Constants
- Variables
- func Check(err error) (m retryMode)
- func IsOperationIdempotent(ctx context.Context) bool
- func Retry(ctx context.Context, op retryOperation, opts ...retryOption) (err error)
- func RetryableError(err error, opts ...retryableErrorOption) error
- func Wait(ctx context.Context, fastBackoff Backoff, slowBackoff Backoff, m retryMode, ...) error
- func WithBackoff(t errors.BackoffType) retryableErrorOption
- func WithDeleteSession() retryableErrorOption
- func WithID(id string) retryOption
- func WithIdempotent() retryOption
- func WithIdempotentOperation(ctx context.Context) context.Context
- func WithNonIdempotentOperation(ctx context.Context) context.Context
- func WithTrace(trace trace.Retry) retryOption
- type Backoff
Constants ¶
const ( BackoffTypeNoBackoff = errors.BackoffTypeNoBackoff BackoffTypeFastBackoff = errors.BackoffTypeFastBackoff BackoffTypeSlowBackoff = errors.BackoffTypeSlowBackoff )
Variables ¶
var ( FastBackoff = newBackoff( withSlotDuration(fastSlot), withCeiling(6), ) SlowBackoff = newBackoff( withSlotDuration(slowSlot), withCeiling(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 If you need to retry your op func on some logic errors - you must return RetryableError() from retryOperation
func RetryableError ¶ added in v3.7.0
func WithBackoff ¶ added in v3.7.0
func WithBackoff(t errors.BackoffType) retryableErrorOption
func WithDeleteSession ¶ added in v3.7.0
func WithDeleteSession() retryableErrorOption
func WithIdempotent ¶ added in v3.10.0
func WithIdempotent() retryOption
WithIdempotent returns discovery trace option
func WithIdempotentOperation ¶
WithIdempotentOperation returns a copy of parent context with idempotent operation feature
func WithNonIdempotentOperation ¶
WithNonIdempotentOperation returns a copy of parent context with non-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.