
commit a1a37d335a8e89ac89d85c00c8585d3fc02e064a Author: Josh Baker <joshbaker77@gmail.com> Date: Thu Oct 5 07:36:54 2017 -0700 use symlink instead of copy commit 96399c2c92620f633611c778e5473200bfd48d41 Author: Josh Baker <joshbaker77@gmail.com> Date: Thu Oct 5 07:19:26 2017 -0700 use dep for vendoring
25 lines
653 B
Go
25 lines
653 B
Go
package retrier
|
|
|
|
import "time"
|
|
|
|
// ConstantBackoff generates a simple back-off strategy of retrying 'n' times, and waiting 'amount' time after each one.
|
|
func ConstantBackoff(n int, amount time.Duration) []time.Duration {
|
|
ret := make([]time.Duration, n)
|
|
for i := range ret {
|
|
ret[i] = amount
|
|
}
|
|
return ret
|
|
}
|
|
|
|
// ExponentialBackoff generates a simple back-off strategy of retrying 'n' times, and doubling the amount of
|
|
// time waited after each one.
|
|
func ExponentialBackoff(n int, initialAmount time.Duration) []time.Duration {
|
|
ret := make([]time.Duration, n)
|
|
next := initialAmount
|
|
for i := range ret {
|
|
ret[i] = next
|
|
next *= 2
|
|
}
|
|
return ret
|
|
}
|