1234567891011121314151617181920 |
- #include "utils.h"
- #include <util/random/random.h>
- TDuration NRetryPrivate::AddRandomDelta(TDuration maxDelta) {
- if (maxDelta == TDuration::Zero()) {
- return TDuration::Zero();
- }
- const TDuration delta = TDuration::MicroSeconds(RandomNumber(2 * maxDelta.MicroSeconds()));
- return delta - maxDelta;
- }
- TDuration NRetryPrivate::AddIncrement(ui32 attempt, TDuration increment) {
- return TDuration::MicroSeconds(attempt * increment.MicroSeconds());
- }
- TDuration NRetryPrivate::AddExponentialMultiplier(ui32 attempt, TDuration exponentialMultiplier) {
- return TDuration::MicroSeconds((1ull << Min(63u, attempt)) * exponentialMultiplier.MicroSeconds());
- }
|