Files
upstream-mirror b352a9a30d
Some checks failed
test / Lint (push) Failing after 3s
test / Test with Go 1.26.8 (push) Failing after 2s
snapshot of https://github.com/centrifugal/centrifugo.git (master, 2026-09-16; blobs > 131072B omitted)
2026-09-16 01:17:21 +05:00

22 lines
540 B
Go

package consuming
import (
"math/rand"
"time"
)
const (
minBackoffDuration = 10 * time.Millisecond
maxBackoffDuration = 5 * time.Second
)
func getNextBackoffDuration(currentBackoff time.Duration, retries int) time.Duration {
if currentBackoff >= maxBackoffDuration {
return maxBackoffDuration
}
//nolint:gosec // it's a jitter.
jitter := time.Duration(rand.Int63n(minBackoffDuration.Milliseconds())) * time.Millisecond
newBackoff := (minBackoffDuration + jitter) * (1 << retries)
return min(newBackoff, maxBackoffDuration)
}