Class BlockingQueueItemReader<T>
java.lang.Object
org.springframework.batch.infrastructure.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:
Exception- if an error occurs.
-