public abstract class PersistentTasksExecutor<Params extends PersistentTaskParams> extends AbstractComponent
Modifier and Type | Field | Description |
---|---|---|
static PersistentTasksCustomMetaData.Assignment |
NO_NODE_FOUND |
deprecationLogger, logger, settings
Modifier | Constructor | Description |
---|---|---|
protected |
PersistentTasksExecutor(Settings settings,
java.lang.String taskName,
java.lang.String executor) |
Modifier and Type | Method | Description |
---|---|---|
protected AllocatedPersistentTask |
createTask(long id,
java.lang.String type,
java.lang.String action,
TaskId parentTaskId,
PersistentTasksCustomMetaData.PersistentTask<Params> taskInProgress,
java.util.Map<java.lang.String,java.lang.String> headers) |
Creates a AllocatedPersistentTask for communicating with task manager
|
PersistentTasksCustomMetaData.Assignment |
getAssignment(Params params,
ClusterState clusterState) |
Returns the node id where the params has to be executed,
|
protected java.lang.String |
getDescription(PersistentTasksCustomMetaData.PersistentTask<Params> taskInProgress) |
Returns task description that will be available via task manager
|
java.lang.String |
getExecutor() |
|
java.lang.String |
getTaskName() |
|
protected abstract void |
nodeOperation(AllocatedPersistentTask task,
Params params,
Task.Status status) |
This operation will be executed on the executor node.
|
protected DiscoveryNode |
selectLeastLoadedNode(ClusterState clusterState,
java.util.function.Predicate<DiscoveryNode> selector) |
Finds the least loaded node that satisfies the selector criteria
|
void |
validate(Params params,
ClusterState clusterState) |
Checks the current cluster state for compatibility with the params
|
logDeprecatedSetting, logRemovedSetting, nodeName
public static final PersistentTasksCustomMetaData.Assignment NO_NODE_FOUND
protected PersistentTasksExecutor(Settings settings, java.lang.String taskName, java.lang.String executor)
public java.lang.String getTaskName()
public PersistentTasksCustomMetaData.Assignment getAssignment(Params params, ClusterState clusterState)
The default implementation returns the least loaded data node
protected DiscoveryNode selectLeastLoadedNode(ClusterState clusterState, java.util.function.Predicate<DiscoveryNode> selector)
public void validate(Params params, ClusterState clusterState)
Throws an exception if the supplied params cannot be executed on the cluster in the current state.
protected AllocatedPersistentTask createTask(long id, java.lang.String type, java.lang.String action, TaskId parentTaskId, PersistentTasksCustomMetaData.PersistentTask<Params> taskInProgress, java.util.Map<java.lang.String,java.lang.String> headers)
protected java.lang.String getDescription(PersistentTasksCustomMetaData.PersistentTask<Params> taskInProgress)
protected abstract void nodeOperation(AllocatedPersistentTask task, Params params, @Nullable Task.Status status)
NOTE: The nodeOperation has to throw an exception, trigger task.markAsCompleted() or task.completeAndNotifyIfNeeded() methods to indicate that the persistent task has finished.
public java.lang.String getExecutor()