package backoff
import "github.com/google/trillian/client/backoff"
Package backoff allows retrying an operation with backoff.
Index ¶
- func IsRetryable(err error, retry ...codes.Code) bool
- func RetriableErrorf(format string, a ...interface{}) error
- type Backoff
- func (b *Backoff) Duration() time.Duration
- func (b *Backoff) Reset()
- func (b *Backoff) Retry(ctx context.Context, f func() error, retry ...codes.Code) error
- type RetriableError
Functions ¶
func IsRetryable ¶
IsRetryable returns false unless the error is explicitly retriable per https://godoc.org/google.golang.org/grpc/codes, or if the error codes is in retry. codes.OK is not retryable.
func RetriableErrorf ¶
RetriableErrorf wraps a formatted string into a RetriableError.
Types ¶
type Backoff ¶
type Backoff struct { Min time.Duration // Duration of the first pause. Max time.Duration // Max duration of a pause. Factor float64 // The factor of duration increase between iterations. Jitter bool // Add random noise to pauses. // contains filtered or unexported fields }
Backoff specifies the parameters of the backoff algorithm. Works correctly if 0 < Min <= Max <= 2^62 (nanosec), and Factor >= 1.
func (*Backoff) Duration ¶
Duration returns the time to wait on current retry iteration. Every time Duration is called, the returned value will exponentially increase by Factor until Backoff.Max. If Jitter is enabled, will add an additional random value between 0 and the duration, so the result can at most double.
func (*Backoff) Reset ¶
func (b *Backoff) Reset()
Reset sets the internal state back to first retry iteration.
func (*Backoff) Retry ¶
Retry calls a function until it succeeds or the context is done. It will backoff if the function returns a retryable error. Once the context is done, retries will end and the most recent error will be returned. Backoff is not reset by this function.
type RetriableError ¶
type RetriableError string
RetriableError explicitly instructs Backoff to retry.
func (RetriableError) Error ¶
func (re RetriableError) Error() string
Error returns string representation of the retriable error.
Source Files ¶
- Version
- v1.7.1 (latest)
- Published
- Jan 9, 2025
- Platform
- linux/amd64
- Imports
- 6 packages
- Last checked
- 5 days ago –
Tools for package owners.