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;