public class CountBasedLimiter extends NonRefillableLimiter
Limiter that limits the number of permits allowed to be issued.
acquirePermits(long) will return false once if there's not enough permits
available to satisfy the request. Permit refills are not supported in this implementation.
| Modifier and Type | Class and Description |
|---|---|
static class |
CountBasedLimiter.Factory |
| Modifier and Type | Field and Description |
|---|---|
static String |
FACTORY_ALIAS |
NO_OP_CLOSEABLE| Constructor and Description |
|---|
CountBasedLimiter(long countLimit) |
| Modifier and Type | Method and Description |
|---|---|
Closeable |
acquirePermits(long permits)
Acquire a given number of permits.
|
void |
start()
Start the
Limiter. |
void |
stop()
Stop the
Limiter. |
public static final String FACTORY_ALIAS
public void start()
LimiterLimiter.
See Limiter.stop()public Closeable acquirePermits(long permits) throws InterruptedException
LimiterDepending on the implementation, the caller of this method may be blocked. It is also up to the caller to decide how to deal with the return value.
acquirePermits in interface LimiteracquirePermits in class NonRefillableLimiterpermits - number of permits to getCloseable instance if the requested permits have been successfully acquired,
or null if otherwise; in the former case, calling Closeable.close() on
the returned Closeable instance will release the acquired permits.InterruptedException - if the caller is interrupted while being blockedpublic void stop()
LimiterLimiter.
See Limiter.start()