Class BulkByScrollTask


public class BulkByScrollTask extends CancellableTask
Task storing information about a currently running BulkByScroll request. When the request is not sliced, this task is the only task created, and starts an action to perform search requests. When the request is sliced, this task can either represent a coordinating task (using setWorkerCount(int)) or a worker task that performs search queries (using setWorker(float, Integer)). We don't always know if this task will be a leader or worker task when it's created, because if slices is set to "auto" it may be either depending on the number of shards in the source indices. We figure that out when the request is handled and set it on this class with setWorkerCount(int) or setWorker(float, Integer).
  • Constructor Details

  • Method Details

    • getStatus

      public BulkByScrollTask.Status getStatus()
      Description copied from class: Task
      Build a status for this task or null if this task doesn't have status. Since most tasks don't have status this defaults to returning null. While this can never perform IO it might be a costly operation, requiring collating lists of results, etc. So only use it if you need the value.
      Overrides:
      getStatus in class Task
    • taskInfoGivenSubtaskInfo

      public TaskInfo taskInfoGivenSubtaskInfo(String localNodeId, List<TaskInfo> sliceInfo)
      Build the status for this task given a snapshot of the information of running slices. This is only supported if the task is set as a leader for slice subtasks
    • isLeader

      public boolean isLeader()
      Returns true if this task is a leader for other slice subtasks
    • setWorkerCount

      public void setWorkerCount(int slices)
      Sets this task to be a leader task for slices sliced subtasks
    • getLeaderState

      public LeaderBulkByScrollTaskState getLeaderState()
      Returns the object that tracks the state of sliced subtasks. Throws IllegalStateException if this task is not set to be a leader task.
    • isWorker

      public boolean isWorker()
      Returns true if this task is a worker task that performs search requests. False otherwise
    • setWorker

      public void setWorker(float requestsPerSecond, @Nullable Integer sliceId)
      Sets this task to be a worker task that performs search requests
      Parameters:
      requestsPerSecond - How many search requests per second this task should make
      sliceId - If this is is a sliced task, which slice number this task corresponds to. Null if not sliced.
    • getWorkerState

      public WorkerBulkByScrollTaskState getWorkerState()
      Returns the object that manages sending search requests. Throws IllegalStateException if this task is not set to be a worker task.
    • onCancelled

      public void onCancelled()
      Description copied from class: CancellableTask
      Called after the task is cancelled so that it can take any actions that it has to take.
      Overrides:
      onCancelled in class CancellableTask