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 MSGbuildNewMessage(String messageId, long epochMillisToRun, WaitTime waitTime, SUPPLIER methodsSupplier)SUPPLIERdequeueIfReady(String messageId, String teamId, String methodName, Map<String,String> params)voidenqueue(String messageId, String teamId, String methodName, Map<String,String> params, SUPPLIER methodsSupplier)IntegergetCurrentActiveQueueSize(String methodNameWithSuffix)protected LinkedBlockingQueue<MSG>getOrCreateActiveQueue(String methodName)protected abstract RateLimitergetRateLimiter()voidremove(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
-