rapture.mongodb.MongoRetryWrapper Maven / Gradle / Ivy
package rapture.mongodb;
import org.apache.log4j.Logger;
import org.bson.Document;
import com.mongodb.client.FindIterable;
import rapture.common.exception.ExceptionToString;
public abstract class MongoRetryWrapper {
private static Logger log = Logger.getLogger(MongoRetryWrapper.class);
private int retryCount = MongoDBFactory.getRetryCount();
public MongoRetryWrapper() {
}
public abstract T action(FindIterable cursor);
public FindIterable makeCursor() {
return null;
}
public T doAction() {
T object = null;
FindIterable cursor = null;
while (retryCount-- > 0) {
try {
cursor = makeCursor();
object = action(cursor);
retryCount = 0;
} catch (com.mongodb.MongoException e) {
log.info("Exception talking to Mongo: \n" + ExceptionToString.format(e));
log.info("Remaining tries: " + retryCount);
}
}
return object;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy