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<@NonNull T>
This is an
ItemReader that reads items from a BlockingQueue. It stops
reading (i.e., returns null) if no items are available in the queue after a
configurable timeout.- Since:
- 5.2.0
- Author:
- Mahmoud Ben Hassine
-
Constructor Summary
ConstructorsConstructorDescriptionBlockingQueueItemReader(BlockingQueue<T> queue) Create a newBlockingQueueItemReader. -
Method Summary
Modifier and TypeMethodDescription@Nullable Tread()Reads a piece of input data and advance to the next one.voidsetTimeout(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:ItemReaderReads a piece of input data and advance to the next one. Implementations must returnnullat 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:
readin interfaceItemReader<T>- Returns:
- T the item to be processed or
nullif 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.
-