retry

package
v3.76.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 5, 2024 License: Apache-2.0 Imports: 11 Imported by: 3

Documentation

Index

Constants

View Source
const (
	TypeNoBackoff   = backoff.TypeNoBackoff
	TypeFastBackoff = backoff.TypeFast
	TypeSlowBackoff = backoff.TypeSlow
)

Variables

This section is empty.

Functions

func Backoff

func Backoff(slotDuration time.Duration, ceiling uint, jitterLimit float64) backoff.Backoff

Backoff makes backoff object with custom params

func Check

func Check(err error) (m retryMode)

Check returns retry mode for queryErr.

func Do added in v3.34.2

func Do(ctx context.Context, db *sql.DB, op func(ctx context.Context, cc *sql.Conn) error, opts ...doOption) error

Do is a retryer of database/sql Conn with fallbacks on errors

func DoTx added in v3.33.0

func DoTx(ctx context.Context, db *sql.DB, op func(context.Context, *sql.Tx) error, opts ...doTxOption) error

DoTx is a retryer of database/sql transactions with fallbacks on errors

func DoTxWithResult added in v3.73.0

func DoTxWithResult[T any](ctx context.Context, db *sql.DB,
	op func(context.Context, *sql.Tx) (T, error),
	opts ...doTxOption,
) (T, error)

DoTxWithResult is a retryer of database/sql transactions with fallbacks on errors

Experimental: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#experimental

func DoWithResult added in v3.73.0

func DoWithResult[T any](ctx context.Context, db *sql.DB,
	op func(ctx context.Context, cc *sql.Conn) (T, error),
	opts ...doOption,
) (T, error)

DoWithResult is a retryer of database/sql Conn with fallbacks on errors

Experimental: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#experimental

func IsOperationIdempotent deprecated

func IsOperationIdempotent(ctx context.Context) bool

IsOperationIdempotent returns the flag for retry with no idempotent errors

Deprecated: context cannot store idempotent value now. Will be removed after Oct 2024. Read about versioning policy: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#deprecated

func Retry

func Retry(ctx context.Context, op retryOperation, opts ...Option) (finalErr error)

Retry provide the best effort fo retrying operation

Retry implements internal busy loop until one of the following conditions is met:

- context was canceled or deadlined

- retry operation returned nil as error

Warning: if context without deadline or cancellation func was passed, Retry will work infinitely.

If you need to retry your op func on some logic errors - you must return RetryableError() from retryOperation

func RetryWithResult added in v3.71.0

func RetryWithResult[T any](ctx context.Context,
	op func(context.Context) (T, error), opts ...Option,
) (_ T, finalErr error)

RetryWithResult provide the best effort fo retrying operation which will return value or error

RetryWithResult implements internal busy loop until one of the following conditions is met:

- context was canceled or deadlined

- retry operation returned nil as error

Warning: if context without deadline or cancellation func was passed, RetryWithResult will work infinitely.

If you need to retry your op func on some logic errors - you must return RetryableError() from retryOperation

Experimental: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#experimental

func RetryableError added in v3.7.0

func RetryableError(err error, opts ...retryableErrorOption) error

RetryableError makes retryable error from options RetryableError provides retrying on custom errors

func WithBackoff added in v3.7.0

func WithBackoff(t backoff.Type) retryableErrorOption

WithBackoff makes retryable error option with custom backoff type

func WithBudget added in v3.66.0

func WithBudget(b budget.Budget) budgetOption
WithBudget returns budget option

Experimental: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#experimental

func WithDeleteSession added in v3.7.0

func WithDeleteSession() retryableErrorOption

WithDeleteSession makes retryable error option with delete session flag

func WithDoRetryOptions added in v3.34.2

func WithDoRetryOptions(opts ...Option) doRetryOptionsOption

WithDoRetryOptions specified retry options Deprecated: use explicit options instead. Will be removed after Oct 2024. Read about versioning policy: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#deprecated

func WithDoTxRetryOptions added in v3.34.2

func WithDoTxRetryOptions(opts ...Option) doTxRetryOptionsOption

WithDoTxRetryOptions specified retry options Deprecated: use explicit options instead. Will be removed after Oct 2024. Read about versioning policy: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#deprecated

func WithFastBackoff added in v3.15.0

func WithFastBackoff(b backoff.Backoff) fastBackoffOption

WithFastBackoff replaces default fast backoff

func WithIdempotent added in v3.10.0

func WithIdempotent(idempotent bool) idempotentOption

WithIdempotent applies idempotent flag to retry operation

func WithIdempotentOperation deprecated

func WithIdempotentOperation(ctx context.Context) context.Context

WithIdempotentOperation returns a copy of parent context with idempotent operation feature

Deprecated: use retry.WithIdempotent option instead. Will be removed after Oct 2024. Read about versioning policy: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#deprecated

func WithLabel added in v3.54.0

func WithLabel(label string) labelOption

WithLabel applies label for identification call Retry in trace.Retry.OnRetry

func WithNonIdempotentOperation deprecated

func WithNonIdempotentOperation(ctx context.Context) context.Context

WithNonIdempotentOperation returns a copy of parent context with non-idempotent operation feature

Deprecated: idempotent flag is false by default. Will be removed after Oct 2024. Read about versioning policy: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#deprecated

func WithPanicCallback added in v3.18.3

func WithPanicCallback(panicCallback func(e interface{})) panicCallbackOption

WithPanicCallback returns panic callback option If not defined - panic would not intercept with driver

func WithSlowBackoff added in v3.15.0

func WithSlowBackoff(b backoff.Backoff) slowBackoffOption

WithSlowBackoff replaces default slow backoff

func WithStackTrace added in v3.24.1

func WithStackTrace() stackTraceOption

WithStackTrace wraps errors with stacktrace from Retry call

func WithTrace added in v3.10.0

func WithTrace(t *trace.Retry) traceOption

WithTrace returns trace option

func WithTxOptions added in v3.33.0

func WithTxOptions(txOptions *sql.TxOptions) txOptionsOption

WithTxOptions specified transaction options

Types

type Option added in v3.53.0

type Option interface {
	ApplyRetryOption(opts *retryOptions)
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL