1
0
mirror of https://github.com/go-micro/go-micro.git synced 2024-12-24 10:07:04 +02:00
go-micro/client/backoff.go

18 lines
404 B
Go
Raw Normal View History

2016-04-05 21:04:37 +02:00
package client
import (
2018-03-03 13:53:52 +02:00
"context"
2016-04-05 21:04:37 +02:00
"math"
"time"
)
type BackoffFunc func(ctx context.Context, req Request, attempts int) (time.Duration, error)
// exponential backoff
func exponentialBackoff(ctx context.Context, req Request, attempts int) (time.Duration, error) {
if attempts == 0 {
return time.Duration(0), nil
}
return time.Duration(math.Pow(10, float64(attempts))) * time.Millisecond, nil
}