package
3.0.0+incompatible
Repository: https://github.com/donutloop/toolkit.git
Documentation: pkg.go.dev
# README
Usage of Retrier
Retry supervised do funcs which automatically handle failures when they occur by performing retries.
Example
package main
import (
"github.com/donutloop/toolkit/retry"
"log"
"context"
)
func main() {
r := retry.NewRetrier(0.125, 0.25, 2, new(retry.Exp))
err := r.Retry(context.Background(), func() (bool, error) {
// do things
return true, nil
})
if err != nil {
log.Fatal(err)
}
}
Usage of Roundtripper Retrier
Example
package main
import (
"github.com/donutloop/toolkit/retry"
"log"
"context"
)
func main() {
retryRoundTripper := retry.NewRoundTripper(http.DefaultTransport, .50 , .15 , 3, []int{http.StatusBadRequest}, new(retry.Exp))
httpClient := new(http.Client)
httpClient.Transport = retryRoundTripper
req, err := http.NewRequest(http.MethodGet, "http://example.com", nil )
if err != nil {
//...
}
resp, err := httpClient.Do(req)
if err != nil {
//...
}
}