common

package
v0.3.10 Latest Latest
Warning

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

Go to latest
Published: Jan 19, 2025 License: Apache-2.0 Imports: 10 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func EngineErrorIsFatal added in v0.3.10

func EngineErrorIsFatal(err error) bool

func EngineErrorIsNonFatal added in v0.3.8

func EngineErrorIsNonFatal(err error) bool

func IntSliceContainsInt

func IntSliceContainsInt(slice []int, number int) bool

func IntSlicesEqual

func IntSlicesEqual(slice1 []int, slice2 []int) bool

func MakeRange

func MakeRange(min, max int) []int

func RetryFunc

func RetryFunc(ctx context.Context,
	loggerInstance logger.Logger,
	attempts int,
	retryInterval *time.Duration,
	backoff *Backoff,
	fn func(int) (bool, error, int)) error

RetryFunc give either retryInterval or backoff gets fn func(int) (bool, error, int) as parameter which returns: bool - whether should be retried error - whether error happened int - increments retries (allows manage retries count from inside of this function)

func StringSliceContainsString

func StringSliceContainsString(slice []string, stringToCheck string) bool

func StringSlicesEqual

func StringSlicesEqual(slice1 []string, slice2 []string) bool

func Uint64SlicesEqual

func Uint64SlicesEqual(slice1 []uint64, slice2 []uint64) bool

Types

type Backoff

type Backoff struct {

	// Factor is the multiplying factor for each increment step
	Factor float64
	// Jitter eases contention by randomizing backoff steps
	Jitter bool
	// Min and Max are the minimum and maximum values of the counter
	Min, Max time.Duration
	// contains filtered or unexported fields
}

Backoff is a time.Duration counter, starting at Min. After every call to the Duration method the current timing is multiplied by Factor, but it never exceeds Max.

Backoff is not generally concurrent-safe, but the ForAttempt method can be used concurrently.

func (*Backoff) Attempt

func (b *Backoff) Attempt() float64

Attempt returns the current attempt counter value.

func (*Backoff) Copy

func (b *Backoff) Copy() *Backoff

Copy returns a backoff with equals constraints as the original

func (*Backoff) Duration

func (b *Backoff) Duration() time.Duration

Duration returns the duration for the current attempt before incrementing the attempt counter. See ForAttempt.

func (*Backoff) ForAttempt

func (b *Backoff) ForAttempt(attempt float64) time.Duration

ForAttempt returns the duration for a specific attempt. This is useful if you have a large number of independent Backoffs, but don't want use unnecessary memory storing the Backoff parameters per Backoff. The first attempt should be 0.

ForAttempt is concurrent-safe.

func (*Backoff) Reset

func (b *Backoff) Reset()

Reset restarts the current attempt counter at zero.

Jump to

Keyboard shortcuts

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