utils

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jun 3, 2018 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddJitter

func AddJitter(duration time.Duration, jitter time.Duration) time.Duration

AddJitter adds an amount of jitter between 0 and the given jitter to the given duration

func DefaultIfBlank

func DefaultIfBlank(str string, default_value string) string

func NewMultiError

func NewMultiError(errs ...error) error

func ParseBool

func ParseBool(str string, default_ bool) bool

func RandHex

func RandHex() string

func RetryNWithBackoff

func RetryNWithBackoff(backoff Backoff, n int, fn func() error) error

RetryNWithBackoff takes a Backoff, a maximum number of tries 'n', and a function that returns an error. The function is called until either it does not return an error or the maximum tries have been reached. If the error returned is Retriable, the Retriability of it will be respected. If the number of tries is exhausted, the last error will be returned.

func RetryNWithBackoffCtx

func RetryNWithBackoffCtx(ctx context.Context, backoff Backoff, n int, fn func() error) error

RetryNWithBackoffCtx takes a context, a Backoff, a maximum number of tries 'n', and a function that returns an error. The function is called until it does not return an error, the context is done, or the maximum tries have been reached. If the error returned is Retriable, the Retriability of it will be respected. If the number of tries is exhausted, the last error will be returned.

func RetryWithBackoff

func RetryWithBackoff(backoff Backoff, fn func() error) error

RetryWithBackoff takes a Backoff and a function to call that returns an error If the error is nil then the function will no longer be called If the error is Retriable then that will be used to determine if it should be retried

func RetryWithBackoffCtx

func RetryWithBackoffCtx(ctx context.Context, backoff Backoff, fn func() error) error

RetryWithBackoffCtx takes a context, a Backoff, and a function to call that returns an error If the context is done, nil will be returned If the error is nil then the function will no longer be called If the error is Retriable then that will be used to determine if it should be retried

func SlicesDeepEqual

func SlicesDeepEqual(slice1, slice2 interface{}) bool

SlicesDeepEqual checks if slice1 and slice2 are equal, disregarding order.

func StrSliceEqual

func StrSliceEqual(s1, s2 []string) bool

func Strptr

func Strptr(s string) *string

func Uint16SliceToStringSlice

func Uint16SliceToStringSlice(slice []uint16) []*string

Uint16SliceToStringSlice converts a slice of type uint16 to a slice of type *string. It uses strconv.Itoa on each element

func ZeroOrNil

func ZeroOrNil(obj interface{}) bool

Types

type AttributeError

type AttributeError struct {
	// contains filtered or unexported fields
}

func NewAttributeError

func NewAttributeError(err string) AttributeError

func (AttributeError) Error

func (e AttributeError) Error() string

type Backoff

type Backoff interface {
	Reset()
	Duration() time.Duration
}

type DefaultRetriable

type DefaultRetriable struct {
	// contains filtered or unexported fields
}

func (DefaultRetriable) Retry

func (dr DefaultRetriable) Retry() bool

type DefaultRetriableError

type DefaultRetriableError struct {
	Retriable
	// contains filtered or unexported fields
}

type MultiErr

type MultiErr struct {
	// contains filtered or unexported fields
}

Implements error

func (MultiErr) Error

func (me MultiErr) Error() string

type Retriable

type Retriable interface {
	Retry() bool
}

func NewRetriable

func NewRetriable(retry bool) Retriable

type RetriableError

type RetriableError interface {
	Retriable
	error
}

func NewRetriableError

func NewRetriableError(retriable Retriable, err error) RetriableError

type SimpleBackoff

type SimpleBackoff struct {
	// contains filtered or unexported fields
}

func NewSimpleBackoff

func NewSimpleBackoff(min, max time.Duration, jitterMultiple, multiple float64) *SimpleBackoff

NewSimpleBackoff creates a Backoff which ranges from min to max increasing by multiple each time. It also adds (and yes, the jitter is always added, never subtracted) a random amount of jitter up to jitterMultiple percent (that is, jitterMultiple = 0.0 is no jitter, 0.15 is 15% added jitter). The total time may exceed "max" when accounting for jitter, such that the absolute max is max + max * jiterMultiple

func (*SimpleBackoff) Duration

func (sb *SimpleBackoff) Duration() time.Duration

func (*SimpleBackoff) Reset

func (sb *SimpleBackoff) Reset()

Directories

Path Synopsis
Package ttime implements a testable alternative to the Go "time" package.
Package ttime implements a testable alternative to the Go "time" package.
mocks
Package mock_ttime is a generated GoMock package.
Package mock_ttime is a generated GoMock package.

Jump to

Keyboard shortcuts

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