All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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