@Override public Throwable extractFailureCauseFromBulkItemResponse(BulkItemResponse bulkItemResponse) { if (!bulkItemResponse.isFailed()) { return null; } else { return bulkItemResponse.getFailure().getCause(); } }
@Override public BulkProcessor.Builder createBulkProcessorBuilder(Client client, BulkProcessor.Listener listener) { return BulkProcessor.builder(client, listener); }
private void processFailBulkResponse(BulkResponse bulkResponse, boolean hasParent) { for (BulkItemResponse response : bulkResponse.getItems()) { if (!response.isFailed()) { continue; } if (response.getFailure().getStatus() == RestStatus.NOT_FOUND) { logger.warn(response.getFailureMessage()); } else { logger.error("全量导入数据有误 {}", response.getFailureMessage()); throw new RuntimeException("全量数据 etl 异常: " + response.getFailureMessage()); } } }
/** * 批量提交 * * @param bulkRequestBuilder * @return */ private static boolean commitBulkRequest(BulkRequestBuilder bulkRequestBuilder) { if (bulkRequestBuilder.numberOfActions() > 0) { BulkResponse response = bulkRequestBuilder.execute().actionGet(); if (response.hasFailures()) { for (BulkItemResponse itemResponse : response.getItems()) { if (!itemResponse.isFailed()) { continue; } if (itemResponse.getFailure().getStatus() == RestStatus.NOT_FOUND) { logger.warn(itemResponse.getFailureMessage()); } else { logger.error("ES sync commit error: {}", itemResponse.getFailureMessage()); } } } return !response.hasFailures(); } return true; }
@Override public Throwable extractFailureCauseFromBulkItemResponse(BulkItemResponse bulkItemResponse) { if (!bulkItemResponse.isFailed()) { return null; } else { return new RuntimeException(bulkItemResponse.getFailureMessage()); } }
@Nullable @Override public Throwable extractFailureCauseFromBulkItemResponse(BulkItemResponse bulkItemResponse) { if (bulkItemResponse.isFailed()) { return new Exception(bulkItemResponse.getFailure().getMessage()); } else { return null; } }
@Override public void add(UpdateRequest... updateRequests) { for (UpdateRequest updateRequest : updateRequests) { if (flushOnCheckpoint) { numPendingRequestsRef.getAndIncrement(); } this.bulkProcessor.add(updateRequest); } } }
@Override public Object answer(InvocationOnMock invocationOnMock) throws Throwable { // intercept the request and add it to our mock bulk request nextBulkRequest.add((IndexRequest) invocationOnMock.getArgument(0)); return null; } });
public void awaitClose(long awaitTime, TimeUnit timeUnit) throws InterruptedException { bulkProcessor.awaitClose(awaitTime, timeUnit); }
/** * This method is used to mimic a scheduled bulk request; we need to do this * manually because we are mocking the BulkProcessor. */ public void manualBulkRequestWithAllPendingRequests() { flushLatch.trigger(); // let the flush mockBulkProcessor.flush(); }
@Override public Throwable extractFailureCauseFromBulkItemResponse(BulkItemResponse bulkItemResponse) { if (!bulkItemResponse.isFailed()) { return null; } else { return bulkItemResponse.getFailure().getCause(); } }
@Override public void add(UpdateRequest... updateRequests) { for (UpdateRequest updateRequest : updateRequests) { if (flushOnCheckpoint) { numPendingRequestsRef.getAndIncrement(); } this.bulkProcessor.add(updateRequest); } } }
@Override public BulkProcessor.Builder createBulkProcessorBuilder(TransportClient client, BulkProcessor.Listener listener) { return BulkProcessor.builder(client, listener); }
@Override public Throwable extractFailureCauseFromBulkItemResponse(BulkItemResponse bulkItemResponse) { if (!bulkItemResponse.isFailed()) { return null; } else { return bulkItemResponse.getFailure().getCause(); } }
@Override public void add(IndexRequest... indexRequests) { for (IndexRequest indexRequest : indexRequests) { if (flushOnCheckpoint) { numPendingRequestsRef.getAndIncrement(); } this.bulkProcessor.add(indexRequest); } }
@Override public BulkProcessor.Builder createBulkProcessorBuilder(TransportClient client, BulkProcessor.Listener listener) { return BulkProcessor.builder(client, listener); }
@Override public void add(DeleteRequest... deleteRequests) { for (DeleteRequest deleteRequest : deleteRequests) { if (flushOnCheckpoint) { numPendingRequestsRef.getAndIncrement(); } this.bulkProcessor.add(deleteRequest); } }
@Override public BulkProcessor.Builder createBulkProcessorBuilder(RestHighLevelClient client, BulkProcessor.Listener listener) { return BulkProcessor.builder(client::bulkAsync, listener); }
@Override public void add(DeleteRequest... deleteRequests) { for (DeleteRequest deleteRequest : deleteRequests) { if (flushOnCheckpoint) { numPendingRequestsRef.getAndIncrement(); } this.bulkProcessor.add(deleteRequest); } }
@Override public void add(IndexRequest... indexRequests) { for (IndexRequest indexRequest : indexRequests) { if (flushOnCheckpoint) { numPendingRequestsRef.getAndIncrement(); } this.bulkProcessor.add(indexRequest); } }