|
|
@@ -1,5 +1,6 @@
|
|
|
package cn.com.ctop.job.bytedance.utils;
|
|
|
|
|
|
+import cn.com.ctop.job.bytedance.data.utils.Check;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.redisson.api.RRateLimiter;
|
|
|
@@ -28,10 +29,10 @@ public class RateLimitUtil {
|
|
|
public boolean acquire(String devAppId, String url, long limit, long interval, RateIntervalUnit unit) {
|
|
|
URI uri = URI.create(url);
|
|
|
String limitKey = uri.getPath().replaceAll("/$", "").replace("/", ":");
|
|
|
- String key = "rate:limit" + limitKey + ":" + devAppId;
|
|
|
+ String key = "rate:limit" + limitKey + (Check.isNull(devAppId) ? "" : ":" + devAppId);
|
|
|
if (!initMap.containsKey(key)) {
|
|
|
RRateLimiter limiter = redissonClient.getRateLimiter(key);
|
|
|
- limiter.trySetRate(
|
|
|
+ limiter.setRate(
|
|
|
RateType.OVERALL,
|
|
|
limit,
|
|
|
interval,
|
|
|
@@ -39,6 +40,6 @@ public class RateLimitUtil {
|
|
|
);
|
|
|
initMap.put(key, true);
|
|
|
}
|
|
|
- return redissonClient.getRateLimiter(key).tryAcquire(1, 2, TimeUnit.SECONDS);
|
|
|
+ return redissonClient.getRateLimiter(key).tryAcquire(1, 1, TimeUnit.SECONDS);
|
|
|
}
|
|
|
}
|