/** * Completely delete an index. */ public Observable deleteApplication() { String idString = applicationId(applicationScope.getApplication()); final TermQueryBuilder tqb = QueryBuilders.termQuery(APPLICATION_ID_FIELDNAME, idString); final String[] indexes = getIndexes(); //Added For Graphite Metrics return Observable.from( indexes ).flatMap( index -> { final ListenableActionFuture<DeleteByQueryResponse> response = esProvider.getClient().prepareDeleteByQuery( alias.getWriteAlias() ).setQuery( tqb ).execute(); response.addListener( new ActionListener<DeleteByQueryResponse>() { @Override public void onResponse( DeleteByQueryResponse response ) { checkDeleteByQueryResponse( tqb, response ); } @Override public void onFailure( Throwable e ) { logger.error( "Failed on delete index", e.getMessage() ); } } ); return Observable.from( response ); } ).doOnError( t -> logger.error( "Failed on delete application", t.getMessage() ) ); }
static <T> ListenableFuture<T> toGuava(ListenableActionFuture<T> elasticFuture) { final SettableFuture<T> future = SettableFuture.create(); elasticFuture.addListener(new ActionListener<T>() { @Override public void onResponse(T t) { future.set(t); } @Override public void onFailure(Throwable e) { future.setException(e); } }); return future; } }
private void flush(final BulkRequestBuilder bulkRequest, final Long sent, final Long sizeInBytes) { LOGGER.debug("Writing to ElasticSearch: Items[{}] Size[{} mb]", sent, MEGABYTE_FORMAT.format(sizeInBytes / (double) (1024 * 1024))); // record the last time we flushed the index this.lastFlush = new Date().getTime(); // add the totals this.totalSent.addAndGet(sent); // add the total number of batches sent this.batchesSent.incrementAndGet(); try { bulkRequest.execute().addListener(new ActionListener<BulkResponse>() { public void onResponse(BulkResponse bulkItemResponses) { batchesResponded.incrementAndGet(); updateTotals(bulkItemResponses, sent, sizeInBytes); } public void onFailure(Throwable throwable) { batchesResponded.incrementAndGet(); throwable.printStackTrace(); } }); } catch (Throwable ex) { LOGGER.error("There was an error sending the batch: {}", ex.getMessage()); } }
public <Request extends ActionRequest, Response extends ActionResponse, RequestBuilder extends ActionRequestBuilder<Request, Response, RequestBuilder>> Response syncExecute(RequestBuilder requestBuilder) { try { ListenableActionFuture<Response> searchActionFuture = requestBuilder.execute(); searchActionFuture.addListener(defaultActionListener(requestBuilder)); return searchActionFuture.actionGet(); } catch (Exception ex) { return null; } }
public <Request extends ActionRequest, Response extends ActionResponse, RequestBuilder extends ActionRequestBuilder<Request, Response, RequestBuilder>> Response syncExecuteWithException(RequestBuilder requestBuilder) { ListenableActionFuture<Response> searchActionFuture = requestBuilder.execute(); searchActionFuture.addListener(defaultActionListener(requestBuilder)); return searchActionFuture.actionGet(); }
private boolean saveToEs(BulkRequestBuilder bulkRequestBuilder){ LOGGER.debug("Inserting {} keys in ES[{}]", bulkRequestBuilder.numberOfActions(), this.indexName); try{ bulkRequestBuilder.execute().addListener(new Runnable() { public void run() { LOGGER.debug("Processing Done!!"); } }); } catch(Exception e){ LOGGER.warn("{} had an Exception in persisting: {}", this.indexName, e); } return false; }
public <Request extends ActionRequest, Response extends ActionResponse, RequestBuilder extends ActionRequestBuilder<Request, Response, RequestBuilder>> void asyncExecute(RequestBuilder requestBuilder) { ListenableActionFuture<Response> searchActionFuture = requestBuilder.execute(); searchActionFuture.addListener(defaultActionListener(requestBuilder)); }
future.addListener(callbackAdapter); return; future.addListener(new ActionListener() { @Override public void onResponse(Object input) { client.admin().indices()
private void updateMappings() { for (String entity : mappingGenerators.keySet()) { EntityMappingGenerator generator = mappingGenerators.get(entity); Map<String, Object> mapping = generator.generateMapping(); if (mapping != null) { final String type = generator.forClass().getSimpleName().toLowerCase(); ListenableActionFuture<PutMappingResponse> future = client.admin().indices() .preparePutMapping("entities") .setType(type) .setSource(mapping) .execute(); future.addListener(new ActionListener<PutMappingResponse>() { public void onResponse(PutMappingResponse putMappingResponse) { logger.info("Mapping for entity [{}] updated", type); } public void onFailure(Throwable throwable) { logger.error("Error updating mapping for entity {}", type, throwable); } }); future.actionGet(); } } }
private boolean saveToEs(BulkRequestBuilder bulk) { logger.info("Inserting {} keys in ES", bulk.numberOfActions()); try { bulk.execute().addListener(new Runnable() { @Override public void run() { logger.info("Processing done!"); } }); } catch (Exception e) { logger.error("failed to execute bulk", e); return false; } return true; } }