@Override
public void start() {
logger.info("{} - {}", DESCRIPTION, MongoDBHelper.getRiverVersion());
Status status = MongoDBRiverHelper.getRiverStatus(esClient, riverName.getName());
if (status == Status.IMPORT_FAILED || status == Status.INITIAL_IMPORT_FAILED || status == Status.SCRIPT_IMPORT_FAILED
|| status == Status.START_FAILED) {
logger.error("Cannot start. Current status is {}", status);
return;
}
if (status == Status.STOPPED) {
context.setStatus(Status.STOPPED);
logger.info("River is currently disabled and will not be started");
} else {
context.setStatus(Status.START_PENDING);
MongoDBRiverHelper.setRiverStatus(esClient, riverName.getName(), Status.RUNNING);
logger.info("Startup pending");
}
statusThread = EsExecutors.daemonThreadFactory(settings.globalSettings(), "mongodb_river_status:" + definition.getIndexName()).newThread(
new StatusChecker(this, definition, context));
statusThread.start();
}