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 T
read()
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:
Exception
- if an error occurs.
-