
com.redis.spring.batch.reader.KeyComparisonItemReader Maven / Gradle / Ivy
package com.redis.spring.batch.reader;
import com.redis.spring.batch.RedisItemReader;
import io.lettuce.core.AbstractRedisClient;
import io.lettuce.core.ReadFrom;
import io.lettuce.core.codec.RedisCodec;
public class KeyComparisonItemReader extends RedisItemReader> {
public static final int DEFAULT_TARGET_POOL_SIZE = RedisItemReader.DEFAULT_POOL_SIZE;
private AbstractRedisClient targetClient;
private int targetPoolSize = DEFAULT_TARGET_POOL_SIZE;
private KeyComparatorOptions comparatorOptions = new KeyComparatorOptions();
private ReadFrom targetReadFrom;
public KeyComparisonItemReader(RedisCodec codec, MemKeyValueRead source,
MemKeyValueRead target) {
super(codec, new KeyComparisonRead<>(codec, source, target));
}
public void setTargetClient(AbstractRedisClient client) {
this.targetClient = client;
}
public void setTargetPoolSize(int size) {
this.targetPoolSize = size;
}
public void setTargetReadFrom(ReadFrom readFrom) {
this.targetReadFrom = readFrom;
}
public KeyComparatorOptions getComparatorOptions() {
return comparatorOptions;
}
public void setComparatorOptions(KeyComparatorOptions options) {
this.comparatorOptions = options;
}
@Override
protected synchronized void doOpen() throws Exception {
KeyComparisonRead keyComparisonRead = (KeyComparisonRead) operation;
keyComparisonRead.setTargetClient(targetClient);
keyComparisonRead.setTargetPoolSize(targetPoolSize);
keyComparisonRead.setTargetReadFrom(targetReadFrom);
keyComparisonRead.setComparator(comparator());
super.doOpen();
}
private KeyComparator comparator() {
KeyComparator comparator = new KeyComparator<>();
comparator.setOptions(comparatorOptions);
return comparator;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy