package retry
import "github.com/ydb-platform/ydb-go-sdk/v3/retry"
Index ¶
- Constants
- func Backoff(slotDuration time.Duration, ceiling uint, jitterLimit float64) backoff.Backoff
- func Check(err error) (m retryMode)
- func Do(ctx context.Context, db *sql.DB, op func(ctx context.Context, cc *sql.Conn) error, opts ...doOption) error
- func DoTx(ctx context.Context, db *sql.DB, op func(context.Context, *sql.Tx) error, opts ...doTxOption) error
- func IsOperationIdempotent(ctx context.Context) bool
- func Retry(ctx context.Context, op retryOperation, opts ...Option) (finalErr error)
- func RetryableError(err error, opts ...retryableErrorOption) error
- func WithBackoff(t backoff.Type) retryableErrorOption
- func WithDeleteSession() retryableErrorOption
- func WithDoRetryOptions(opts ...Option) doRetryOptionsOption
- func WithDoTxRetryOptions(opts ...Option) doTxRetryOptionsOption
- func WithFastBackoff(b backoff.Backoff) fastBackoffOption
- func WithIdempotent(idempotent bool) idempotentOption
- func WithIdempotentOperation(ctx context.Context) context.Context
- func WithLabel(label string) labelOption
- func WithNonIdempotentOperation(ctx context.Context) context.Context
- func WithPanicCallback(panicCallback func(e interface{})) panicCallbackOption
- func WithSlowBackoff(b backoff.Backoff) slowBackoffOption
- func WithStackTrace() stackTraceOption
- func WithTrace(t *trace.Retry) traceOption
- func WithTxOptions(txOptions *sql.TxOptions) txOptionsOption
- type Option
Constants ¶
const ( TypeNoBackoff = backoff.TypeNoBackoff TypeFastBackoff = backoff.TypeFast TypeSlowBackoff = backoff.TypeSlow )
Functions ¶
func Backoff ¶
Backoff makes backoff object with custom params
func Check ¶
func Check(err error) (m retryMode)
Check returns retry mode for queryErr.
func Do ¶
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 ¶
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 IsOperationIdempotent ¶
IsOperationIdempotent returns the flag for retry with no idempotent errors Deprecated: context cannot store idempotent value now
func Retry ¶
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 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 ¶
RetryableError makes retryable error from options RetryableError provides retrying on custom errors
func WithBackoff ¶
WithBackoff makes retryable error option with custom backoff type
func WithDeleteSession ¶
func WithDeleteSession() retryableErrorOption
WithDeleteSession makes retryable error option with delete session flag
func WithDoRetryOptions ¶
func WithDoRetryOptions(opts ...Option) doRetryOptionsOption
WithDoRetryOptions specified retry options Deprecated: use implicit options instead
func WithDoTxRetryOptions ¶
func WithDoTxRetryOptions(opts ...Option) doTxRetryOptionsOption
WithDoTxRetryOptions specified retry options Deprecated: use implicit options instead
func WithFastBackoff ¶
WithFastBackoff replaces default fast backoff
func WithIdempotent ¶
func WithIdempotent(idempotent bool) idempotentOption
WithIdempotent applies idempotent flag to retry operation
func WithIdempotentOperation ¶
WithIdempotentOperation returns a copy of parent context with idempotent operation feature Deprecated: use retry.WithIdempotent option instead
func WithLabel ¶
func WithLabel(label string) labelOption
WithLabel applies label for identification call Retry in trace.Retry.OnRetry
func WithNonIdempotentOperation ¶
WithNonIdempotentOperation returns a copy of parent context with non-idempotent operation feature Deprecated: idempotent flag is false by default
func WithPanicCallback ¶
func WithPanicCallback(panicCallback func(e interface{})) panicCallbackOption
WithPanicCallback returns panic callback option If not defined - panic would not intercept with driver
func WithSlowBackoff ¶
WithSlowBackoff replaces default slow backoff
func WithStackTrace ¶
func WithStackTrace() stackTraceOption
WithStackTrace wraps errors with stacktrace from Retry call
func WithTrace ¶
WithTrace returns trace option
func WithTxOptions ¶
WithTxOptions specified transaction options
Types ¶
type Option ¶
type Option interface {
ApplyRetryOption(opts *retryOptions)
}
Source Files ¶
backoff.go context.go errors.go mode.go retry.go retryable_error.go sql.go
- Version
- v3.59.3
- Published
- Mar 24, 2024
- Platform
- js/wasm
- Imports
- 11 packages
- Last checked
- 1 second ago –
Tools for package owners.