Class ResultHolderResultQueue
- java.lang.Object
- org.springframework.batch.repeat.support.ResultHolderResultQueue
public class ResultHolderResultQueue extends java.lang.Object
An implementation of theResultQueue
that throttles the number of expected results, limiting it to a maximum at any given time.- Author:
- Dave Syer
Constructor Summary
Constructors Constructor Description ResultHolderResultQueue(int throttleLimit)
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
expect()
Tell the queue to expect one more result.boolean
isEmpty()
boolean
isExpecting()
void
put(org.springframework.batch.repeat.support.ResultHolder holder)
org.springframework.batch.repeat.support.ResultHolder
take()
Get the next result as soon as it becomes available.
Method Detail
isEmpty
public boolean isEmpty()
isExpecting
public boolean isExpecting()
expect
public void expect() throws java.lang.InterruptedException
Tell the queue to expect one more result. Blocks until a new result is available if already expecting too many (as determined by the throttle limit).- Throws:
java.lang.InterruptedException
- See Also:
ResultQueue.expect()
put
public void put(org.springframework.batch.repeat.support.ResultHolder holder) throws java.lang.IllegalArgumentException
- Throws:
java.lang.IllegalArgumentException
take
public org.springframework.batch.repeat.support.ResultHolder take() throws java.util.NoSuchElementException, java.lang.InterruptedException
Get the next result as soon as it becomes available.
Release result immediately if:- There is a result that is continuable.
- There is no result (as per contract of
ResultQueue
). - The number of results is less than the number expected.
- Not expecting.
- Interrupted.
- Throws:
java.util.NoSuchElementException
java.lang.InterruptedException
- See Also:
ResultQueue.take()