Skip to content

Commit d16d85f

Browse files
committed
修改限流锁API,可以自主设定超时时间。
1 parent a03f28d commit d16d85f

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

src/main/java/frodez/config/aop/request/LimitUserAOP.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ public class LimitUserAOP {
2626

2727
@Around("@annotation(frodez.config.aop.request.annotation.Limit)")
2828
public Object limit(ProceedingJoinPoint point) throws Throwable {
29+
Limit limit = AspectUtil.annotation(point, Limit.class);
2930
RateLimiter limiter = limitCache.computeIfAbsent(ContextUtil.request().getRequestURI(), i -> RateLimiter.create(
30-
AspectUtil.annotation(point, Limit.class).value()));
31-
//默认请求时长的100倍
32-
if (!limiter.tryAcquire((long) (100 * 1000 / limiter.getRate()), DefTime.UNIT)) {
31+
limit.value()));
32+
if (!limiter.tryAcquire(limit.timeout(), DefTime.UNIT)) {
3333
return Result.fail("请求超时");
3434
}
3535
return point.proceed();

src/main/java/frodez/config/aop/request/annotation/Limit.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,7 @@
1919
// 每秒每token限制请求数,默认值100.0
2020
double value() default 100.0;
2121

22+
// 超时时间,默认值1000毫秒
23+
long timeout() default 3000;
24+
2225
}

0 commit comments

Comments
 (0)