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 )