Rethrottle API

edit

Rethrottle Request

edit

A RethrottleRequest can be used to change the current throttling on a running reindex, update-by-query or delete-by-query task or to disable throttling of the task entirely. It requires the task Id of the task to change.

In its simplest form, you can use it to disable throttling of a running task using the following:

RethrottleRequest request = new RethrottleRequest(taskId); 

Create a RethrottleRequest that disables throttling for a specific task id

By providing a requestsPerSecond argument, the request will change the existing task throttling to the specified value:

RethrottleRequest request = new RethrottleRequest(taskId, 100.0f); 

Request to change the throttling of a task to 100 requests per second

The rethrottling request can be executed by using one of the three appropriate methods depending on whether a reindex, update-by-query or delete-by-query task should be rethrottled:

client.reindexRethrottle(request, RequestOptions.DEFAULT);       
client.updateByQueryRethrottle(request, RequestOptions.DEFAULT); 
client.deleteByQueryRethrottle(request, RequestOptions.DEFAULT); 

Execute reindex rethrottling request

The same for update-by-query

The same for delete-by-query

Asynchronous Execution

edit

The asynchronous execution of a rethrottle request requires both the RethrottleRequest instance and an ActionListener instance to be passed to the asynchronous method:

client.reindexRethrottleAsync(request, RequestOptions.DEFAULT, listener);       
client.updateByQueryRethrottleAsync(request, RequestOptions.DEFAULT, listener); 
client.deleteByQueryRethrottleAsync(request, RequestOptions.DEFAULT, listener); 

Execute reindex rethrottling asynchronously

The same for update-by-query

The same for delete-by-query

The asynchronous method does not block and returns immediately. Once it is completed the ActionListener is called back using the onResponse method if the execution successfully completed or using the onFailure method if it failed. A typical listener looks like this:

ActionListener<ListTasksResponse> listener = new ActionListener<ListTasksResponse>() {
    @Override
    public void onResponse(ListTasksResponse response) {
        
    }

    @Override
    public void onFailure(Exception e) {
        
    }
};

Code executed when the request is successfully completed

Code executed when the request fails with an exception

Rethrottle Response

edit

Rethrottling returns the task that has been rethrottled in the form of a ListTasksResponse. The structure of this response object is described in detail in this section.