mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-05-14 07:26:47 +00:00
* CI/build: Update Go version, linters and fix minor issues * linters: Add intrange, copyloopvar, additional go vet linters to match gopls and fix issues
23 lines
520 B
Go
23 lines
520 B
Go
package request
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
// DefaultBackoff is a default strategy for backoff after a retryable request failure.
|
|
func DefaultBackoff() Backoff {
|
|
return LinearBackoff(100*time.Millisecond, time.Second)
|
|
}
|
|
|
|
// LinearBackoff applies a backoff increasing by a base amount with each retry capped at a maximum duration.
|
|
func LinearBackoff(base, maxDuration time.Duration) Backoff {
|
|
return func(n int) time.Duration {
|
|
d := base * time.Duration(n)
|
|
if d > maxDuration {
|
|
return maxDuration
|
|
}
|
|
|
|
return d
|
|
}
|
|
}
|