Package com.slack.api.rate_limits.queue
Class RateLimitQueue<SUPPLIER,MSG extends QueueMessage>
java.lang.Object
com.slack.api.rate_limits.queue.RateLimitQueue<SUPPLIER,MSG>
- Direct Known Subclasses:
AsyncRateLimitQueue
,AsyncRateLimitQueue
,AsyncRateLimitQueue
public abstract class RateLimitQueue<SUPPLIER,MSG extends QueueMessage> extends Object
-
Field Summary
Fields Modifier and Type Field Description protected ConcurrentMap<String,LinkedBlockingQueue<MSG>>
methodNameToActiveQueue
-
Constructor Summary
Constructors Constructor Description RateLimitQueue()
-
Method Summary
Modifier and Type Method Description protected abstract MSG
buildNewMessage(String messageId, long epochMillisToRun, WaitTime waitTime, SUPPLIER methodsSupplier)
SUPPLIER
dequeueIfReady(String messageId, String teamId, String methodName, Map<String,String> params)
void
enqueue(String messageId, String teamId, String methodName, Map<String,String> params, SUPPLIER methodsSupplier)
Integer
getCurrentActiveQueueSize(String methodNameWithSuffix)
protected LinkedBlockingQueue<MSG>
getOrCreateActiveQueue(String methodName)
protected abstract RateLimiter
getRateLimiter()
void
remove(String methodName, String messageId)
-
Field Details
-
methodNameToActiveQueue
protected final ConcurrentMap<String,LinkedBlockingQueue<MSG extends QueueMessage>> methodNameToActiveQueue
-
-
Constructor Details
-
RateLimitQueue
public RateLimitQueue()
-
-
Method Details
-
getRateLimiter
-
getOrCreateActiveQueue
-
dequeueIfReady
-
buildNewMessage
-
enqueue
public void enqueue(String messageId, String teamId, String methodName, Map<String,String> params, SUPPLIER methodsSupplier) throws InterruptedException- Throws:
InterruptedException
-
remove
-
getCurrentActiveQueueSize
-