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
All Methods Instance Methods Abstract Methods Concrete Methods 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 Detail
-
methodNameToActiveQueue
protected final ConcurrentMap<String,LinkedBlockingQueue<MSG extends QueueMessage>> methodNameToActiveQueue
-
-
Method Detail
-
getRateLimiter
protected abstract RateLimiter getRateLimiter()
-
getOrCreateActiveQueue
protected LinkedBlockingQueue<MSG> getOrCreateActiveQueue(String methodName)
-
dequeueIfReady
public SUPPLIER dequeueIfReady(String messageId, String teamId, String methodName, Map<String,String> params)
-
buildNewMessage
protected abstract MSG buildNewMessage(String messageId, long epochMillisToRun, WaitTime waitTime, SUPPLIER methodsSupplier)
-
enqueue
public void enqueue(String messageId, String teamId, String methodName, Map<String,String> params, SUPPLIER methodsSupplier) throws InterruptedException
- Throws:
InterruptedException
-
-