Search in sources :

Example 1 with Result

use of com.tencent.polaris.plugins.ratelimiter.common.slide.SlidingWindow.Result in project polaris-java by polarismesh.

the class RemoteAwareBucket method fetchLocalUsage.

@Override
public Map<Integer, LocalQuotaInfo> fetchLocalUsage(long curTimeMs) {
    Map<Integer, LocalQuotaInfo> localInfos = new HashMap<>();
    for (Map.Entry<Long, TokenBucket> entry : tokenBucketMap.entrySet()) {
        TokenBucket tokenBucket = entry.getValue();
        Result result = tokenBucket.getSlidingWindow().acquireCurrentValues(curTimeMs);
        LocalQuotaInfo localQuotaInfo = new LocalQuotaInfo(result.getPassed(), result.getLimited());
        localInfos.put(tokenBucket.getValidDurationSecond(), localQuotaInfo);
    }
    return localInfos;
}
Also used : LocalQuotaInfo(com.tencent.polaris.api.plugin.ratelimiter.LocalQuotaInfo) HashMap(java.util.HashMap) HashMap(java.util.HashMap) Map(java.util.Map) Result(com.tencent.polaris.plugins.ratelimiter.common.slide.SlidingWindow.Result) AllocateResult(com.tencent.polaris.plugins.ratelimiter.reject.TokenBucket.AllocateResult) QuotaResult(com.tencent.polaris.api.plugin.ratelimiter.QuotaResult)

Aggregations

LocalQuotaInfo (com.tencent.polaris.api.plugin.ratelimiter.LocalQuotaInfo)1 QuotaResult (com.tencent.polaris.api.plugin.ratelimiter.QuotaResult)1 Result (com.tencent.polaris.plugins.ratelimiter.common.slide.SlidingWindow.Result)1 AllocateResult (com.tencent.polaris.plugins.ratelimiter.reject.TokenBucket.AllocateResult)1 HashMap (java.util.HashMap)1 Map (java.util.Map)1