public static boolean isAllowed(RateLimiterDescriptor descriptor) { if (descriptor.getPermitsPerSecond() <= 0) { LOGGER.trace("isAllowed : rate limiting disabled"); return true; } try { LOGGER.trace("isAllowed : getting ratelimiter for descriptor={}", descriptor); RateLimiter r = getOrCreate(descriptor); LOGGER.trace("isAllowed : retireved ratelimiter={}, rate={}", r, r.getRate()); return r.tryAcquire(); } catch (ExecutionException e) { LOGGER.error( "isAllowed : Caught exception getting RateLimiter for descriptor : {}", descriptor, e); return false; } }
public RateLimiter load(RateLimiterDescriptor descriptor) { return RateLimiter.create(descriptor.getPermitsPerSecond()); }