github.com/status-im/status-go@v1.1.0/protocol/tt/backoff.go (about) 1 package tt 2 3 import ( 4 "time" 5 6 "github.com/cenkalti/backoff/v3" 7 ) 8 9 type BackOffOption func(*backoff.ExponentialBackOff) 10 11 func RetryWithBackOff(o func() error, options ...BackOffOption) error { 12 b := backoff.ExponentialBackOff{ 13 InitialInterval: time.Millisecond * 100, 14 RandomizationFactor: 0.1, 15 Multiplier: 1, 16 MaxInterval: time.Second, 17 MaxElapsedTime: time.Second * 10, 18 Clock: backoff.SystemClock, 19 } 20 for _, option := range options { 21 option(&b) 22 } 23 b.Reset() 24 return backoff.Retry(o, &b) 25 }