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 java.lang.Object
-
Field Summary
Fields Modifier and Type Field Description protected java.util.concurrent.ConcurrentMap<java.lang.String,java.util.concurrent.LinkedBlockingQueue<MSG>>methodNameToActiveQueue -
Constructor Summary
Constructors Constructor Description RateLimitQueue() -
Method Summary
Modifier and Type Method Description protected abstract MSGbuildNewMessage(java.lang.String messageId, long epochMillisToRun, WaitTime waitTime, SUPPLIER methodsSupplier)SUPPLIERdequeueIfReady(java.lang.String messageId, java.lang.String teamId, java.lang.String methodName, java.util.Map<java.lang.String,java.lang.String> params)voidenqueue(java.lang.String messageId, java.lang.String teamId, java.lang.String methodName, java.util.Map<java.lang.String,java.lang.String> params, SUPPLIER methodsSupplier)java.lang.IntegergetCurrentActiveQueueSize(java.lang.String methodNameWithSuffix)protected java.util.concurrent.LinkedBlockingQueue<MSG>getOrCreateActiveQueue(java.lang.String methodName)protected abstract RateLimitergetRateLimiter()voidremove(java.lang.String methodName, java.lang.String messageId)
-
Field Details
-
methodNameToActiveQueue
protected final java.util.concurrent.ConcurrentMap<java.lang.String,java.util.concurrent.LinkedBlockingQueue<MSG extends QueueMessage>> methodNameToActiveQueue
-
-
Constructor Details
-
RateLimitQueue
public RateLimitQueue()
-
-
Method Details
-
getRateLimiter
-
getOrCreateActiveQueue
protected java.util.concurrent.LinkedBlockingQueue<MSG> getOrCreateActiveQueue(java.lang.String methodName) -
dequeueIfReady
public SUPPLIER dequeueIfReady(java.lang.String messageId, java.lang.String teamId, java.lang.String methodName, java.util.Map<java.lang.String,java.lang.String> params) -
buildNewMessage
-
enqueue
public void enqueue(java.lang.String messageId, java.lang.String teamId, java.lang.String methodName, java.util.Map<java.lang.String,java.lang.String> params, SUPPLIER methodsSupplier) throws java.lang.InterruptedException- Throws:
java.lang.InterruptedException
-
remove
public void remove(java.lang.String methodName, java.lang.String messageId) -
getCurrentActiveQueueSize
public java.lang.Integer getCurrentActiveQueueSize(java.lang.String methodNameWithSuffix)
-