Class RedisItemReader<K,V>

java.lang.Object
org.springframework.batch.item.redis.RedisItemReader<K,V>
Type Parameters:
K - type of keys
V - type of values
All Implemented Interfaces:
ItemReader<V>, ItemStream, ItemStreamReader<V>

public class RedisItemReader<K,V> extends Object implements ItemStreamReader<V>
Item reader for Redis based on Spring Data Redis. Uses a RedisTemplate to query data. The user should provide a ScanOptions to specify the set of keys to query.

The implementation is not thread-safe and not restartable.

Since:
5.1
Author:
Mahmoud Ben Hassine
  • Constructor Summary

    Constructors
    Constructor
    Description
    RedisItemReader(org.springframework.data.redis.core.RedisTemplate<K,V> redisTemplate, org.springframework.data.redis.core.ScanOptions scanOptions)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    If any resources are needed for the stream to operate they need to be destroyed here.
    void
    open(ExecutionContext executionContext)
    Open the stream for the provided ExecutionContext.
    Reads a piece of input data and advance to the next one.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.springframework.batch.item.ItemStream

    update
  • Constructor Details

    • RedisItemReader

      public RedisItemReader(org.springframework.data.redis.core.RedisTemplate<K,V> redisTemplate, org.springframework.data.redis.core.ScanOptions scanOptions)
  • Method Details

    • open

      public void open(ExecutionContext executionContext) throws ItemStreamException
      Description copied from interface: ItemStream
      Open the stream for the provided ExecutionContext.
      Specified by:
      open in interface ItemStream
      Parameters:
      executionContext - current step's ExecutionContext. Will be the executionContext from the last run of the step on a restart.
      Throws:
      ItemStreamException
    • read

      public V read() throws Exception
      Description copied from interface: ItemReader
      Reads a piece of input data and advance to the next one. Implementations must return null 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 interface ItemReader<K>
      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.
    • close

      public void close() throws ItemStreamException
      Description copied from interface: ItemStream
      If any resources are needed for the stream to operate they need to be destroyed here. Once this method has been called all other methods (except open) may throw an exception.
      Specified by:
      close in interface ItemStream
      Throws:
      ItemStreamException