Add more metadata

This commit is contained in:
Ben Sarmiento
2023-10-17 12:36:33 +02:00
parent c5f365c8b4
commit 44216343e2
9 changed files with 139 additions and 39 deletions

View File

@@ -6,16 +6,13 @@ import (
"time"
)
func RetryUntilOk[T any](fn func() (T, error)) *T {
func RetryUntilOk[T any](fn func() (T, error)) T {
const initialDelay = 2 * time.Second
const maxDelay = 128 * time.Second
for i := 0; ; i++ {
result, err := fn()
if err == nil {
return &result
}
if strings.Contains(err.Error(), "404") {
return nil
if err == nil || strings.Contains(err.Error(), "404") {
return result
}
delay := time.Duration(math.Min(float64(initialDelay*time.Duration(math.Pow(2, float64(i)))), float64(maxDelay)))
time.Sleep(delay)