|
|
@ -150,8 +150,13 @@ public class DefaultBulkProcessor implements BulkProcessor {
|
|
|
|
* @return his bulk processor
|
|
|
|
* @return his bulk processor
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public DefaultBulkProcessor add(ActionRequest<?> request) {
|
|
|
|
public synchronized DefaultBulkProcessor add(ActionRequest<?> request) {
|
|
|
|
internalAdd(request);
|
|
|
|
ensureOpen();
|
|
|
|
|
|
|
|
bulkRequest.add(request);
|
|
|
|
|
|
|
|
if ((bulkActions != -1 && bulkRequest.numberOfActions() >= bulkActions) ||
|
|
|
|
|
|
|
|
(bulkSize != -1 && bulkRequest.estimatedSizeInBytes() >= bulkSize)) {
|
|
|
|
|
|
|
|
execute();
|
|
|
|
|
|
|
|
}
|
|
|
|
return this;
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -185,33 +190,13 @@ public class DefaultBulkProcessor implements BulkProcessor {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private synchronized void internalAdd(ActionRequest<?> request) {
|
|
|
|
|
|
|
|
ensureOpen();
|
|
|
|
|
|
|
|
bulkRequest.add(request);
|
|
|
|
|
|
|
|
executeIfNeeded();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void executeIfNeeded() {
|
|
|
|
|
|
|
|
ensureOpen();
|
|
|
|
|
|
|
|
if (!isOverTheLimit()) {
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
execute();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void execute() {
|
|
|
|
private void execute() {
|
|
|
|
final BulkRequest myBulkRequest = this.bulkRequest;
|
|
|
|
BulkRequest myBulkRequest = this.bulkRequest;
|
|
|
|
final long executionId = executionIdGen.incrementAndGet();
|
|
|
|
long executionId = executionIdGen.incrementAndGet();
|
|
|
|
this.bulkRequest = new BulkRequest();
|
|
|
|
this.bulkRequest = new BulkRequest();
|
|
|
|
this.bulkRequestHandler.execute(myBulkRequest, executionId);
|
|
|
|
this.bulkRequestHandler.execute(myBulkRequest, executionId);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private boolean isOverTheLimit() {
|
|
|
|
|
|
|
|
return bulkActions != -1 &&
|
|
|
|
|
|
|
|
bulkRequest.numberOfActions() >= bulkActions ||
|
|
|
|
|
|
|
|
bulkSize != -1 && bulkRequest.estimatedSizeInBytes() >= bulkSize;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* A builder used to create a build an instance of a bulk processor.
|
|
|
|
* A builder used to create a build an instance of a bulk processor.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|