The tiny library for retrying any action.
I needed in some similar behavior in the one of project. A half of a minute of googling showed nothing. That's why the decision to extract the library was made.
- Add cancellation context.
Retry(10).
ExecuteBool(func() bool {
counter++
if counter == 5 {
return true
}
return false
})
Retry(10).
ExecuteError(func() error {
conn, err := MakeConnection()
return err
})
RetryAndWait([]time.Duration{1000 * time.Millisecond, 1000 * time.Millisecond}).
ExecuteError(func() error {
conn, err := MakeConnection()
return err
})
RetryAndWaitForever(func(attempt int) time.Duration { return time.Duration(attempt*100) * time.Millisecond }).
ExecuteError(func() error {
conn, err := MakeConnection()
return err
})
Just go get this repository with the following way:
go get github.com/alexpantyukhin/retryer