Documentation
¶
Index ¶
- 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 EngineErrorIsNonFatal ¶ added in v0.3.8
EngineErrorIsNonFatal checks whether the error should be considered non-fatal It unwraps the error chain and checks each error against predefined non-fatal patterns
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.