Documentation ¶
Index ¶
- func EngineErrorIsFatal(err error) bool
- func EngineErrorIsNonFatal(err error) bool
- func IntSliceContainsInt(slice []int, number int) bool
- func IntSlicesEqual(slice1 []int, slice2 []int) bool
- func MakeRange(min, max int) []int
- func RetryFunc(ctx context.Context, loggerInstance logger.Logger, attempts int, ...) error
- func StringSliceContainsString(slice []string, stringToCheck string) bool
- func StringSlicesEqual(slice1 []string, slice2 []string) bool
- func Uint64SlicesEqual(slice1 []uint64, slice2 []uint64) bool
- type Backoff
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func EngineErrorIsFatal ¶ added in v0.3.10
func EngineErrorIsNonFatal ¶ added in v0.3.8
func IntSliceContainsInt ¶
func IntSlicesEqual ¶
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 StringSlicesEqual ¶
func Uint64SlicesEqual ¶
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) Duration ¶
Duration returns the duration for the current attempt before incrementing the attempt counter. See ForAttempt.
func (*Backoff) ForAttempt ¶
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.