Net::Twitter::Role::RetryOnError - Retry Twitter API calls on error
version 4.01043
use Net::Twitter;
$nt = Net::Twitter->new(
traits => ['API::RESTv1_1', 'RetryOnError']
max_retries => 3,
);
Temporary errors are not uncommon when calling the Twitter API. When applied
to the Net::Twitter manpage this role will provide automatic retries of API calls in a very
configurable way.
It only retries when the response status code is >= 500. Other error codes
indicate a permanent error. If the maximum number of retries is reached,
without success, an exception is thrown, as usual.
This role adds the following options to new:
- initial_retry_delay
-
A floating point number specifying the initial delay, after an error, before
retrying. Default: 0.25 (250 milliseconds).
- max_retry_delay
-
A floating point number specifying the maximum delay between retries. Default: 4.0
- retry_delay_multiplier
-
On the second and subsequent retries, a new delay is calculated by multiplying the previous
delay by
retry_delay_multiplier. Default: 2.0
- max_retries
-
The maximum number of consecutive retries before giving up and throwing an exception.
If set to 0, it the API call will be retried indefinitely. Default 5.
- retry_delay_code
-
A code reference that will be called to handle the delay. It is passed a
single argument: a floating point number specifying the number of seconds to
delay. By default, sleep in the Time::HiRes manpage is called.
If you're using a non-blocking user agent, like the Coro::LWP manpage, you should use
this option to provide a non-blocking delay.
Marc Mims <marc@questright.com>
Copyright (c) 2016 Marc Mims
This library is free software and may be distributed under the same terms as perl itself.
|