Algorithm-Backoff
view release on metacpan or search on metacpan
lib/Algorithm/Backoff.pm view on Meta::CPAN
if ($attrspec->{$attr}{req}) {
exists($args{$attr})
or die "$class: Missing required attribute '$attr'";
}
if (exists $attrspec->{$attr}{default}) {
$args{$attr} //= $attrspec->{$attr}{default};
}
}
$args{_attempts} = 0;
$args{_start_timestamp} //= time();
bless \%args, $class;
}
sub _consider_actual_delay {
my ($self, $delay, $timestamp) = @_;
$self->{_prev_delay} //= 0;
my $actual_delay = $timestamp - $self->{_last_timestamp};
my $new_delay = $delay + $self->{_prev_delay} - $actual_delay;
$new_delay;
}
( run in 0.917 second using v1.01-cache-2.11-cpan-de7293f3b23 )