Package org.elasticsearch.persistent
Class PersistentTasksExecutor<Params extends PersistentTaskParams>
java.lang.Object
org.elasticsearch.persistent.PersistentTasksExecutor<Params>
An executor of tasks that can survive restart of requesting or executing node.
 These tasks are using cluster state rather than only transport service to send requests and responses.
- 
Field Summary
Fields - 
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedPersistentTasksExecutor(String taskName, String executor) - 
Method Summary
Modifier and TypeMethodDescriptionprotected AllocatedPersistentTaskcreateTask(long id, String type, String action, TaskId parentTaskId, PersistentTasksCustomMetadata.PersistentTask<Params> taskInProgress, Map<String,String> headers)Creates a AllocatedPersistentTask for communicating with task managergetAssignment(Params params, Collection<DiscoveryNode> candidateNodes, ClusterState clusterState)Returns the node id where the params has to be executed,protected StringgetDescription(PersistentTasksCustomMetadata.PersistentTask<Params> taskInProgress)Returns task description that will be available via task managerprotected abstract voidnodeOperation(AllocatedPersistentTask task, Params params, PersistentTaskState state)This operation will be executed on the executor node.protected DiscoveryNodeselectLeastLoadedNode(ClusterState clusterState, Collection<DiscoveryNode> candidateNodes, Predicate<DiscoveryNode> selector)Finds the least loaded node from amongs the candidate node collection that satisfies the selector criteriavoidvalidate(Params params, ClusterState clusterState)Checks the current cluster state for compatibility with the params 
- 
Field Details
- 
NO_NODE_FOUND
 
 - 
 - 
Constructor Details
- 
PersistentTasksExecutor
 
 - 
 - 
Method Details
- 
getTaskName
 - 
getAssignment
public PersistentTasksCustomMetadata.Assignment getAssignment(Params params, Collection<DiscoveryNode> candidateNodes, ClusterState clusterState)Returns the node id where the params has to be executed,The default implementation returns the least loaded data node from amongst the collection of candidate nodes
 - 
selectLeastLoadedNode
protected DiscoveryNode selectLeastLoadedNode(ClusterState clusterState, Collection<DiscoveryNode> candidateNodes, Predicate<DiscoveryNode> selector)Finds the least loaded node from amongs the candidate node collection that satisfies the selector criteria - 
validate
Checks the current cluster state for compatibility with the paramsThrows an exception if the supplied params cannot be executed on the cluster in the current state.
 - 
createTask
protected AllocatedPersistentTask createTask(long id, String type, String action, TaskId parentTaskId, PersistentTasksCustomMetadata.PersistentTask<Params> taskInProgress, Map<String,String> headers)Creates a AllocatedPersistentTask for communicating with task manager - 
getDescription
protected String getDescription(PersistentTasksCustomMetadata.PersistentTask<Params> taskInProgress)Returns task description that will be available via task manager - 
nodeOperation
protected abstract void nodeOperation(AllocatedPersistentTask task, Params params, @Nullable PersistentTaskState state)This operation will be executed on the executor node.NOTE: The nodeOperation has to throw an exception, trigger task.markAsCompleted() or task.completeAndNotifyIfNeeded() methods to indicate that the persistent task has finished.
 - 
getExecutor
 
 -