Skip to content

Commit

Permalink
optimize inject mode
Browse files Browse the repository at this point in the history
  • Loading branch information
yanhom1314 committed Dec 30, 2023
1 parent 09bf614 commit 0a64a1a
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -45,16 +45,16 @@ public abstract class AbstractRedisRateLimiter implements RedisRateLimiter<List<

private final RedisScript<List<Long>> script;

@Resource
protected StringRedisTemplate stringRedisTemplate;

protected static final AtomicInteger COUNTER = new AtomicInteger(0);

public AbstractRedisRateLimiter(String scriptName) {
public AbstractRedisRateLimiter(String scriptName, StringRedisTemplate stringRedisTemplate) {
DefaultRedisScript redisScript = new DefaultRedisScript<>();
redisScript.setScriptSource(new ResourceScriptSource(new ClassPathResource(SCRIPT_PATH + scriptName)));
redisScript.setResultType(List.class);
this.script = redisScript;
this.stringRedisTemplate = stringRedisTemplate;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@

import org.dromara.dynamictp.common.util.CommonUtil;
import org.dromara.dynamictp.extension.limiter.redis.em.RateLimitEnum;
import org.springframework.data.redis.core.StringRedisTemplate;

import java.util.Arrays;
import java.util.List;
Expand All @@ -31,8 +32,8 @@
**/
public class SlidingWindowRateLimiter extends AbstractRedisRateLimiter {

public SlidingWindowRateLimiter() {
super(RateLimitEnum.SLIDING_WINDOW.getScriptName());
public SlidingWindowRateLimiter(StringRedisTemplate stringRedisTemplate) {
super(RateLimitEnum.SLIDING_WINDOW.getScriptName(), stringRedisTemplate);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ public class RedisLimiterAutoConfiguration {

@Bean
@ConditionalOnMissingBean
public RedisRateLimiter<List<Long>> redisScriptRateLimiter() {
return new SlidingWindowRateLimiter();
public RedisRateLimiter<List<Long>> redisScriptRateLimiter(StringRedisTemplate stringRedisTemplate) {
return new SlidingWindowRateLimiter(stringRedisTemplate);
}

@Bean
Expand Down

0 comments on commit 0a64a1a

Please sign in to comment.