![JAR search and dependency download from the Maven repository](/logo.png)
com.founder.core.ratelimiter.RateLimiterService Maven / Gradle / Ivy
The newest version!
package com.founder.core.ratelimiter;
import com.founder.core.model.Mode;
import com.founder.core.model.Result;
import com.founder.core.model.Rule;
import org.redisson.api.RedissonClient;
import java.util.HashMap;
import java.util.Map;
public class RateLimiterService {
private static final Map RATE_LIMITER_FACTORY = new HashMap<>();
public RateLimiterService(RedissonClient redissonClient) {
RATE_LIMITER_FACTORY.put(Mode.TIME_WINDOW, new TimeWindowRateLimiter(redissonClient));
RATE_LIMITER_FACTORY.put(Mode.TOKEN_BUCKET, new TokenBucketRateLimiter(redissonClient));
}
public Result isAllowed(Rule rule) {
RateLimiter rateLimiter = RATE_LIMITER_FACTORY.get(rule.getMode());
return rateLimiter.isAllowed(rule);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy