Fixed - RRateLimiter.tryAcquire with timeout blocks forever

pull/1705/head
Nikita
parent c38fecd9a4
commit 7015d31aa8

@ -169,7 +169,7 @@ public class RedissonRateLimiter extends RedissonObject implements RRateLimiter
public void run() { public void run() {
promise.trySuccess(false); promise.trySuccess(false);
} }
}, remains, TimeUnit.SECONDS); }, remains, TimeUnit.MILLISECONDS);
} else { } else {
final long start = System.currentTimeMillis(); final long start = System.currentTimeMillis();
commandExecutor.getConnectionManager().getGroup().schedule(new Runnable() { commandExecutor.getConnectionManager().getGroup().schedule(new Runnable() {
@ -183,7 +183,7 @@ public class RedissonRateLimiter extends RedissonObject implements RRateLimiter
tryAcquireAsync(permits, promise, remains - elapsed); tryAcquireAsync(permits, promise, remains - elapsed);
} }
}, delay, TimeUnit.SECONDS); }, delay, TimeUnit.MILLISECONDS);
} }
} }
}); });

@ -17,6 +17,16 @@ import org.redisson.api.RateType;
public class RedissonRateLimiterTest extends BaseTest { public class RedissonRateLimiterTest extends BaseTest {
@Test(timeout = 1500)
public void testTryAcquire() {
RRateLimiter rr = redisson.getRateLimiter("acquire");
assertThat(rr.trySetRate(RateType.OVERALL, 1, 5, RateIntervalUnit.SECONDS)).isTrue();
assertThat(rr.tryAcquire(1, 1, TimeUnit.SECONDS)).isTrue();
assertThat(rr.tryAcquire(1, 1, TimeUnit.SECONDS)).isFalse();
assertThat(rr.tryAcquire()).isFalse();
}
@Test @Test
public void testAcquire() { public void testAcquire() {
RRateLimiter rr = redisson.getRateLimiter("acquire"); RRateLimiter rr = redisson.getRateLimiter("acquire");

Loading…
Cancel
Save