Class RateLimitChecker.LiteralValue

    • Constructor Detail

      • LiteralValue

        public LiteralValue​(int sleepAtOrBelow)
    • Method Detail

      • checkRateLimit

        protected boolean checkRateLimit​(GHRateLimit.Record record,
                                         long count)
                                  throws InterruptedException
        Description copied from class: RateLimitChecker
        Decides whether the current request exceeds the allowed "rate limit" budget. If this determines the rate limit will be exceeded, this method should sleep for some amount of time and must return true. Implementers are free to choose whatever strategy they prefer for what is considered to exceed the budget and how long to sleep.

        The caller of this method figures out which GHRateLimit.Record applies for the current request add provides it to this method.

        It is important to remember that rate limit reset times are only accurate to the second. Trying to sleep to exactly the reset time would be likely to produce worse behavior rather than better. For this reason GitHubRateLimitChecker may choose to add more sleep times when a checker indicates the rate limit was exceeded.

        As long as this method returns true it is guaranteed that GitHubRateLimitChecker will get updated rate limit information and call this method again with count incremented by one. After this method returns true at least once, the calling GitHubRateLimitChecker may choose to wait some additional period of time between calls to this checker.

        After this checker returns false, the calling GitHubRateLimitChecker will let the request continue. If this method returned true at least once for a particular request, the calling GitHubRateLimitChecker may choose to wait some additional period of time before letting the request be sent.

        Overrides:
        checkRateLimit in class RateLimitChecker
        Parameters:
        record - the current GHRateLimit.Record to check against.
        count - the number of times in a row this method has been called for the current request
        Returns:
        false if the current request does not exceed the allowed budget, true if the current request exceeded the budget.
        Throws:
        InterruptedException - if the thread is interrupted while sleeping