public class HostLimitQueue extends java.util.concurrent.LinkedBlockingDeque<java.lang.Runnable>
| Modifier and Type | Field and Description |
|---|---|
private int |
hostLimit |
private java.util.Map<java.lang.String,java.util.concurrent.Semaphore> |
hostSemaphores |
private static long |
serialVersionUID |
| Constructor and Description |
|---|
HostLimitQueue(int hostLimit)
Creates an unbounded queue
|
| Modifier and Type | Method and Description |
|---|---|
private void |
acquireSemaphore(java.lang.Runnable job) |
private JCSCachedTileLoaderJob<?,?> |
findJob() |
private java.util.concurrent.Semaphore |
getSemaphore(JCSCachedTileLoaderJob<?,?> job) |
java.lang.Runnable |
poll(long timeout,
java.util.concurrent.TimeUnit unit) |
private void |
releaseSemaphore(JCSCachedTileLoaderJob<?,?> job) |
java.lang.Runnable |
take() |
private boolean |
tryAcquireSemaphore(JCSCachedTileLoaderJob<?,?> job) |
add, addFirst, addLast, clear, contains, descendingIterator, drainTo, drainTo, element, getFirst, getLast, iterator, offer, offer, offerFirst, offerFirst, offerLast, offerLast, peek, peekFirst, peekLast, poll, pollFirst, pollFirst, pollLast, pollLast, pop, push, put, putFirst, putLast, remainingCapacity, remove, remove, removeFirst, removeFirstOccurrence, removeLast, removeLastOccurrence, size, spliterator, takeFirst, takeLast, toArray, toArray, toStringcontainsAll, isEmpty, removeAll, retainAllclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitprivate static final long serialVersionUID
private final java.util.Map<java.lang.String,java.util.concurrent.Semaphore> hostSemaphores
private final int hostLimit
public HostLimitQueue(int hostLimit)
hostLimit - how many parallel calls to host to allowprivate JCSCachedTileLoaderJob<?,?> findJob()
public java.lang.Runnable poll(long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException
poll in interface java.util.concurrent.BlockingDeque<java.lang.Runnable>poll in interface java.util.concurrent.BlockingQueue<java.lang.Runnable>poll in class java.util.concurrent.LinkedBlockingDeque<java.lang.Runnable>java.lang.InterruptedExceptionpublic java.lang.Runnable take() throws java.lang.InterruptedException
take in interface java.util.concurrent.BlockingDeque<java.lang.Runnable>take in interface java.util.concurrent.BlockingQueue<java.lang.Runnable>take in class java.util.concurrent.LinkedBlockingDeque<java.lang.Runnable>java.lang.InterruptedExceptionprivate java.util.concurrent.Semaphore getSemaphore(JCSCachedTileLoaderJob<?,?> job)
private void acquireSemaphore(java.lang.Runnable job) throws java.lang.InterruptedException
java.lang.InterruptedExceptionprivate boolean tryAcquireSemaphore(JCSCachedTileLoaderJob<?,?> job)
private void releaseSemaphore(JCSCachedTileLoaderJob<?,?> job)