Class RateLimitHistory

  • All Implemented Interfaces:
    Function<java.lang.String,​java.lang.Boolean>, Predicate<java.lang.String>

    public class RateLimitHistory
    extends java.lang.Object
    implements Predicate<java.lang.String>
    A class for making sure that certain resources don't get hammered.
    Author:
    Alex Kalderimis
    • Constructor Summary

      Constructors 
      Constructor Description
      RateLimitHistory​(int periodInSeconds, int maxRequestsPerPeriod)
      Constructor
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Boolean call​(java.lang.String id)
      Apply some test to some kind of thing.
      boolean isWithinLimit​(java.lang.String id)
      Check that this requester is within their limit.
      void recordRequest​(java.lang.String id)
      Record that a request was made.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • RateLimitHistory

        public RateLimitHistory​(int periodInSeconds,
                                int maxRequestsPerPeriod)
        Constructor
        Parameters:
        periodInSeconds - The period we take into consideration.
        maxRequestsPerPeriod - The maximum number of requests in any given period.
    • Method Detail

      • isWithinLimit

        public boolean isWithinLimit​(java.lang.String id)
        Check that this requester is within their limit.
        Parameters:
        id - The ID to key their requests against.
        Returns:
        true or false.
      • call

        public java.lang.Boolean call​(java.lang.String id)
        Description copied from interface: Predicate
        Apply some test to some kind of thing.
        Specified by:
        call in interface Function<java.lang.String,​java.lang.Boolean>
        Specified by:
        call in interface Predicate<java.lang.String>
        Parameters:
        id - The thing to test
        Returns:
        true or false
      • recordRequest

        public void recordRequest​(java.lang.String id)
        Record that a request was made.
        Parameters:
        id - The id to key this request against.