Skip to content
Snippets Groups Projects
Commit 144ad090 authored by Neelesh Thakur's avatar Neelesh Thakur
Browse files

retry entire batch if all record indexing is failing

parent 30c15b32
No related branches found
No related tags found
2 merge requests!346Merge branch 'aws-integration' into 'master',!292Fix record retry for deleted events on deleted index
......@@ -430,6 +430,8 @@ public class IndexerServiceImpl implements IndexerService {
List<String> failureRecordIds = new LinkedList<>();
if (bulkRequest.numberOfActions() == 0) return failureRecordIds;
int failedRequestStatus = 200;
String failedRequestMessage = "";
try {
BulkResponse bulkResponse = restClient.bulk(bulkRequest, RequestOptions.DEFAULT);
......@@ -447,6 +449,10 @@ public class IndexerServiceImpl implements IndexerService {
if (RETRY_ELASTIC_EXCEPTION.contains(bulkItemResponse.status())) {
failureRecordIds.add(bulkItemResponse.getId());
}
if (Strings.isNullOrEmpty(failedRequestMessage)) {
failedRequestMessage = failure.getMessage();
failedRequestStatus = failure.getStatus().getStatus();
}
failedResponses++;
} else {
succeededResponses++;
......@@ -456,6 +462,9 @@ public class IndexerServiceImpl implements IndexerService {
if (!bulkFailures.isEmpty()) this.jaxRsDpsLog.warning(bulkFailures);
jaxRsDpsLog.info(String.format("records in elasticsearch service bulk request: %s | successful: %s | failed: %s", bulkRequest.numberOfActions(), succeededResponses, failedResponses));
// retry entire message if all records are failing
if (bulkRequest.numberOfActions() == failedResponses) throw new AppException(failedRequestStatus, "Elastic error", failedRequestMessage);
} catch (IOException e) {
// throw explicit 504 for IOException
throw new AppException(HttpStatus.SC_GATEWAY_TIMEOUT, "Elastic error", "Request cannot be completed in specified time.", e);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment