Class ResultHolderResultQueue
- java.lang.Object
- org.springframework.batch.repeat.support.ResultHolderResultQueue
public class ResultHolderResultQueue extends java.lang.ObjectAn implementation of theResultQueuethat 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 voidexpect()Tell the queue to expect one more result.booleanisEmpty()booleanisExpecting()voidput(org.springframework.batch.repeat.support.ResultHolder holder)org.springframework.batch.repeat.support.ResultHoldertake()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.InterruptedExceptionTell 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.InterruptedExceptionGet 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.NoSuchElementExceptionjava.lang.InterruptedException- See Also:
ResultQueue.take()