logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Net::Twitter::Role::RetryOnError - Retry Twitter API calls on error

Author

       Marc Mims <marc@questright.com>

Description

       Temporary errors are not uncommon when calling the Twitter API.  When applied to Net::Twitter 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.

License

       This library is free software and may be distributed under the same terms as perl itself.

perl v5.40.1                                       2025-02-18              Net::Twitter::Role::RetryOnError(3pm)

Name

       Net::Twitter::Role::RetryOnError - Retry Twitter API calls on error

Options

       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 Time::HiRes is
           called.

           If you're using a non-blocking user agent, like Coro::LWP, you should use this option  to  provide  a
           non-blocking delay.

Synopsis

           use Net::Twitter;
           $nt = Net::Twitter->new(
               traits      => ['API::RESTv1_1', 'RetryOnError']
               max_retries => 3,
           );

Version

       version 4.01043

See Also