/** * Determine the File to write to for the given query batch. * * @param queryBatch * @param exportDir * @return */ protected File getFileForBatch(QueryBatch queryBatch, File exportDir) { String filename = queryBatch.getJobBatchNumber() + filenameExtension; if (filenamePrefix != null) { filename = filenamePrefix + filename; } return new File(exportDir, filename); }
@Override public void processEvent(QueryBatch queryBatch) { String message = String.format("Processed batch number [%d]; job results so far: [%d]", queryBatch.getJobBatchNumber(), queryBatch.getJobResultsSoFar()); if (useLogger) { if (logger.isInfoEnabled()) { logger.info(message); } } else { System.out.println(message); } }
@Override public void processFailure(QueryBatch batch, Throwable throwable) { boolean isHostUnavailableException = processException(batch.getBatcher(), throwable, batch.getClient().getHost()); if ( isHostUnavailableException == true ) { try { logger.warn("Retrying failed listener batch: {}, results so far: {}, uris: {}", batch.getJobBatchNumber(), batch.getJobResultsSoFar(), Arrays.toString(batch.getItems())); batch.getBatcher().retryListener(batch, queryBatchListener); } catch (RuntimeException e) { logger.error("Exception during listener retry", e); processFailure(batch, e); } } } }
.withItems( responseUris.toArray(new String[responseUris.size()]) ) .withTimestamp( batch.getTimestamp() ) .withJobBatchNumber( batch.getJobBatchNumber() ) .withJobResultsSoFar( batch.getJobResultsSoFar() ) .withForestBatchNumber( batch.getForestBatchNumber() )
@Override public void retryListener(QueryBatch batch, QueryBatchListener queryBatchListener) { // We get the batch and modify the client alone in order to make use // of the new forest client in case if the original host is unavailable. DatabaseClient client = null; Forest[] forests = batch.getBatcher().getForestConfig().listForests(); for(Forest forest : forests) { if(forest.equals(batch.getForest())) client = getMoveMgr().getForestClient(forest); } QueryBatchImpl retryBatch = new QueryBatchImpl() .withClient( client ) .withBatcher( batch.getBatcher() ) .withTimestamp( batch.getTimestamp() ) .withServerTimestamp( batch.getServerTimestamp() ) .withItems( batch.getItems() ) .withJobTicket( batch.getJobTicket() ) .withJobBatchNumber( batch.getJobBatchNumber() ) .withJobResultsSoFar( batch.getJobResultsSoFar() ) .withForestBatchNumber( batch.getForestBatchNumber() ) .withForestResultsSoFar( batch.getForestResultsSoFar() ) .withForest( batch.getForest() ) .withJobTicket( batch.getJobTicket() ); queryBatchListener.processEvent(retryBatch); }