qbtrade/pkg/util/backoff/general.go

24 lines
505 B
Go
Raw Normal View History

2024-06-27 14:42:38 +00:00
package backoff
import (
"context"
"time"
"github.com/cenkalti/backoff/v4"
)
var MaxRetries uint64 = 101
// RetryGeneral retries operation with max retry times 101 and with the exponential backoff
func RetryGeneral(parent context.Context, op backoff.Operation) (err error) {
ctx, cancel := context.WithTimeout(parent, 15*time.Minute)
defer cancel()
err = backoff.Retry(op, backoff.WithContext(
backoff.WithMaxRetries(
backoff.NewExponentialBackOff(),
MaxRetries),
ctx))
return err
}