Hydra::Math: add an exponential_backoff function

This commit is contained in:
Graham Christensen
2021-08-26 12:54:38 -04:00
parent 29738364fb
commit 42c2d2f387
2 changed files with 49 additions and 0 deletions

30
src/lib/Hydra/Math.pm Normal file
View File

@ -0,0 +1,30 @@
package Hydra::Math;
use strict;
use warnings;
use List::Util qw(min);
use Exporter 'import';
our @EXPORT_OK = qw(exponential_backoff);
=head2 exponential_backoff
Calculates a number of seconds to wait before reattempting something.
Arguments:
=over 1
=item C<$attempts>
Integer number of attempts made.
=back
=cut
sub exponential_backoff {
my ($attempt) = @_;
my $clamp = min(10, $attempt);
return 2 ** $clamp;
}
1;