.github
add stale bot.gitignore
fix the links in READMEbackoff_test.go
fixes #15 - added tons of new documentation, godoc, and small cosmetic changes to codebackoff.go
fix formatCHANGELOG.md
Revert "retry: always include last operation error on timeout or context cancel (#181)"error.go
add commentsexample_test.go
Revert "retry: always include last operation error on timeout or context cancel (#181)"exponential_test.go
v5exponential.go
use `math/rand/v2` instead of `math/rand`go.mod
update go.mod for v5LICENSE
Initial commitREADME.md
remove coveralls badgeretry_test.go
Revert "retry: always include last operation error on timeout or context cancel (#181)"retry.go
Revert "retry: always include last operation error on timeout or context cancel (#181)"ticker_test.go
unexport timer typeticker.go
unexport timer typetimer.go
unexport timer typetries_test.go
use `math/rand/v2` instead of `math/rand`Exponential Backoff
This is a Go port of the exponential backoff algorithm from Google's HTTP Client Library for Java.
Exponential backoff is an algorithm that uses feedback to multiplicatively decrease the rate of some process, in order to gradually find an acceptable rate. The retries exponentially increase and stop increasing when a certain threshold is met.
Usage
Import path is github.com/cenkalti/backoff/v5. Please note the version part at the end.
For most cases, use Retry function. See example_test.go for an example.
If you have specific needs, copy Retry function (from retry.go) into your code and modify it as needed.
Contributing
- I would like to keep this library as small as possible.
- Please don't send a PR without opening an issue and discussing it first.
- If proposed change is not a common use case, I will probably not accept it.