org.apache.oozie.util
Class PollablePriorityDelayQueue<E>

java.lang.Object
  extended by java.util.AbstractCollection<E>
      extended by java.util.AbstractQueue<PriorityDelayQueue.QueueElement<E>>
          extended by org.apache.oozie.util.PriorityDelayQueue<E>
              extended by org.apache.oozie.util.PollablePriorityDelayQueue<E>
All Implemented Interfaces:
Iterable<PriorityDelayQueue.QueueElement<E>>, Collection<PriorityDelayQueue.QueueElement<E>>, BlockingQueue<PriorityDelayQueue.QueueElement<E>>, Queue<PriorityDelayQueue.QueueElement<E>>

public class PollablePriorityDelayQueue<E>
extends PriorityDelayQueue<E>


Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.oozie.util.PriorityDelayQueue
PriorityDelayQueue.QueueElement<E>
 
Field Summary
 
Fields inherited from class org.apache.oozie.util.PriorityDelayQueue
ANTI_STARVATION_INTERVAL, currentSize, lock, priorities, queues
 
Constructor Summary
PollablePriorityDelayQueue(int priorities, long maxWait, TimeUnit unit, int maxSize)
           
 
Method Summary
protected  boolean eligibleToPoll(PriorityDelayQueue.QueueElement<?> element)
          Method for checking the QueueElement eligible to poll before remove it from queue.
 PriorityDelayQueue.QueueElement<E> poll()
          Retrieve and remove the head of this queue if it is eligible to poll.
 
Methods inherited from class org.apache.oozie.util.PriorityDelayQueue
add, antiStarvation, clear, debug, drainTo, drainTo, getMaxSize, getMaxWait, getPriorities, iterator, offer, offer, peek, poll, put, remainingCapacity, size, sizes, take
 
Methods inherited from class java.util.AbstractQueue
addAll, element, remove
 
Methods inherited from class java.util.AbstractCollection
contains, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArray, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.concurrent.BlockingQueue
contains, remove
 
Methods inherited from interface java.util.Queue
element, remove
 
Methods inherited from interface java.util.Collection
addAll, containsAll, equals, hashCode, isEmpty, removeAll, retainAll, toArray, toArray
 

Constructor Detail

PollablePriorityDelayQueue

public PollablePriorityDelayQueue(int priorities,
                                  long maxWait,
                                  TimeUnit unit,
                                  int maxSize)
Method Detail

poll

public PriorityDelayQueue.QueueElement<E> poll()
Retrieve and remove the head of this queue if it is eligible to poll. If not, iterate next element until find the one which is eligible to poll from queue. Return null if this queue has no elements eligible to run.

Invocations to this method run the anti-starvation (once every interval check).

Specified by:
poll in interface Queue<PriorityDelayQueue.QueueElement<E>>
Overrides:
poll in class PriorityDelayQueue<E>
Returns:
the element of this queue, for which eligibleToPoll is true.

eligibleToPoll

protected boolean eligibleToPoll(PriorityDelayQueue.QueueElement<?> element)
Method for checking the QueueElement eligible to poll before remove it from queue.

This method should be overriden for checking purposes.

Parameters:
element - the element to check


Copyright © 2012 Apache Software Foundation. All Rights Reserved.