Class BlockingQueueItemReader<T>
java.lang.Object
org.springframework.batch.item.queue.BlockingQueueItemReader<T>
- Type Parameters:
T
- type of items to read.
- All Implemented Interfaces:
ItemReader<T>
This is an
ItemReader
that reads items from a BlockingQueue
. It stops
reading (ie returns null
) if no items are available in the queue after a
configurable timeout.- Since:
- 5.2.0
- Author:
- Mahmoud Ben Hassine
-
Constructor Summary
ConstructorDescriptionBlockingQueueItemReader
(BlockingQueue<T> queue) Create a newBlockingQueueItemReader
. -
Method Summary
Modifier and TypeMethodDescriptionread()
Reads a piece of input data and advance to the next one.void
setTimeout
(long timeout, TimeUnit timeUnit) Set the reading timeout and time unit.
-
Constructor Details
-
BlockingQueueItemReader
Create a newBlockingQueueItemReader
.- Parameters:
queue
- the queue to read items from
-
-
Method Details
-
setTimeout
Set the reading timeout and time unit. Defaults to 1 second.- Parameters:
timeout
- the timeout after which the reader stops readingtimeUnit
- the unit of the timeout
-
read
Description copied from interface:ItemReader
Reads a piece of input data and advance to the next one. Implementations must returnnull
at the end of the input data set. In a transactional setting, caller might get the same item twice from successive calls (or otherwise), if the first call was in a transaction that rolled back.- Specified by:
read
in interfaceItemReader<T>
- Returns:
- T the item to be processed or
null
if the data source is exhausted - Throws:
ParseException
- if there is a problem parsing the current record (but the next one may still be valid)NonTransientResourceException
- if there is a fatal exception in the underlying resource. After throwing this exception implementations should endeavour to return null from subsequent calls to read.UnexpectedInputException
- if there is an uncategorised problem with the input data. Assume potentially transient, so subsequent calls to read might succeed.Exception
- if an there is a non-specific error.
-