Package org.opennms.core.tasks
Class DefaultTaskCoordinator
- java.lang.Object
-
- org.opennms.core.tasks.DefaultTaskCoordinator
-
- All Implemented Interfaces:
TaskCoordinator
,org.springframework.beans.factory.InitializingBean
public class DefaultTaskCoordinator extends java.lang.Object implements TaskCoordinator, org.springframework.beans.factory.InitializingBean
ThisDefaultTaskCoordinator
class provides utility methods to construct and schedule hierarchies ofTasks
.- Author:
- brozow
-
-
Field Summary
-
Fields inherited from interface org.opennms.core.tasks.TaskCoordinator
DEFAULT_EXECUTOR
-
-
Constructor Summary
Constructors Constructor Description DefaultTaskCoordinator(java.lang.String name)
Constructor for DefaultTaskCoordinator.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addDependency(AbstractTask prereq, AbstractTask dependent)
addDependencyvoid
addOrUpdateExecutor(java.lang.String executorName, java.util.concurrent.Executor executor)
addExecutorvoid
afterPropertiesSet()
afterPropertiesSetTaskBuilder<BatchTask>
createBatch()
createBatchBatchTask
createBatch(java.lang.Runnable... tasks)
createBatchTaskBuilder<BatchTask>
createBatch(ContainerTask<?> parent)
createBatchBatchTask
createBatch(ContainerTask<?> parent, java.lang.Runnable... tasks)
createBatchTaskBuilder<SequenceTask>
createSequence()
createSequenceTaskBuilder<SequenceTask>
createSequence(ContainerTask<?> parent)
createSequenceSequenceTask
createSequence(ContainerTask<?> parent, java.lang.Runnable... tasks)
createSequenceSyncTask
createTask(ContainerTask<?> parent, java.lang.Runnable r)
createTaskSyncTask
createTask(ContainerTask<?> parent, java.lang.Runnable r, java.lang.String schedulingHint)
createTask<T> AsyncTask<T>
createTask(ContainerTask<?> parent, Async<T> async, Callback<T> cb)
createTaskvoid
markTaskAsCompleted(AbstractTask task)
void
schedule(AbstractTask task)
schedulevoid
setDefaultExecutor(java.lang.String executorName)
setDefaultExecutorvoid
setExecutors(java.util.Map<java.lang.String,java.util.concurrent.Executor> executors)
setExecutorsvoid
setLoopDelay(long millis)
setLoopDelayvoid
submitToExecutor(java.lang.String executorPreference, java.lang.Runnable workToBeDone, AbstractTask owningTask)
-
-
-
Method Detail
-
setDefaultExecutor
public final void setDefaultExecutor(java.lang.String executorName)
setDefaultExecutor
- Parameters:
executorName
- aString
object.
-
afterPropertiesSet
public void afterPropertiesSet()
afterPropertiesSet
- Specified by:
afterPropertiesSet
in interfaceorg.springframework.beans.factory.InitializingBean
-
createTask
public SyncTask createTask(ContainerTask<?> parent, java.lang.Runnable r)
createTask
- Specified by:
createTask
in interfaceTaskCoordinator
- Parameters:
parent
- aContainerTask
object.r
- aRunnable
object.- Returns:
- a
SyncTask
object.
-
createTask
public SyncTask createTask(ContainerTask<?> parent, java.lang.Runnable r, java.lang.String schedulingHint)
createTask
- Specified by:
createTask
in interfaceTaskCoordinator
- Parameters:
parent
- aContainerTask
object.r
- aRunnable
object.schedulingHint
- aString
object.- Returns:
- a
SyncTask
object.
-
createTask
public <T> AsyncTask<T> createTask(ContainerTask<?> parent, Async<T> async, Callback<T> cb)
createTask
- Specified by:
createTask
in interfaceTaskCoordinator
- Type Parameters:
T
- a T object.- Parameters:
parent
- aContainerTask
object.async
- aAsync
object.cb
- aCallback
object.- Returns:
- a
AsyncTask
object.
-
createBatch
public TaskBuilder<BatchTask> createBatch(ContainerTask<?> parent)
createBatch
- Specified by:
createBatch
in interfaceTaskCoordinator
- Parameters:
parent
- aContainerTask
object.- Returns:
- a
TaskBuilder
object.
-
createBatch
public TaskBuilder<BatchTask> createBatch()
createBatch
- Specified by:
createBatch
in interfaceTaskCoordinator
- Returns:
- a
TaskBuilder
object.
-
createBatch
public BatchTask createBatch(ContainerTask<?> parent, java.lang.Runnable... tasks)
createBatch
- Specified by:
createBatch
in interfaceTaskCoordinator
- Parameters:
parent
- aContainerTask
object.tasks
- aRunnable
object.- Returns:
- a
BatchTask
object.
-
createBatch
public BatchTask createBatch(java.lang.Runnable... tasks)
createBatch
- Specified by:
createBatch
in interfaceTaskCoordinator
- Parameters:
tasks
- aRunnable
object.- Returns:
- a
BatchTask
object.
-
createSequence
public TaskBuilder<SequenceTask> createSequence(ContainerTask<?> parent)
createSequence
- Specified by:
createSequence
in interfaceTaskCoordinator
- Parameters:
parent
- aContainerTask
object.- Returns:
- a
TaskBuilder
object.
-
createSequence
public TaskBuilder<SequenceTask> createSequence()
createSequence
- Specified by:
createSequence
in interfaceTaskCoordinator
- Returns:
- a
TaskBuilder
object.
-
createSequence
public SequenceTask createSequence(ContainerTask<?> parent, java.lang.Runnable... tasks)
createSequence
- Specified by:
createSequence
in interfaceTaskCoordinator
- Parameters:
parent
- aContainerTask
object.tasks
- aRunnable
object.- Returns:
- a
SequenceTask
object.
-
setLoopDelay
public final void setLoopDelay(long millis)
setLoopDelay
- Specified by:
setLoopDelay
in interfaceTaskCoordinator
- Parameters:
millis
- a long.
-
schedule
public void schedule(AbstractTask task)
schedule
- Specified by:
schedule
in interfaceTaskCoordinator
- Parameters:
task
- aAbstractTask
object.
-
addDependency
public void addDependency(AbstractTask prereq, AbstractTask dependent)
addDependency
- Specified by:
addDependency
in interfaceTaskCoordinator
- Parameters:
prereq
- aAbstractTask
object.dependent
- aAbstractTask
object.
-
markTaskAsCompleted
public void markTaskAsCompleted(AbstractTask task)
- Specified by:
markTaskAsCompleted
in interfaceTaskCoordinator
-
submitToExecutor
public void submitToExecutor(java.lang.String executorPreference, java.lang.Runnable workToBeDone, AbstractTask owningTask)
- Specified by:
submitToExecutor
in interfaceTaskCoordinator
-
addOrUpdateExecutor
public final void addOrUpdateExecutor(java.lang.String executorName, java.util.concurrent.Executor executor)
addExecutor
- Specified by:
addOrUpdateExecutor
in interfaceTaskCoordinator
- Parameters:
executorName
- aString
object.executor
- aExecutor
object.
-
setExecutors
public final void setExecutors(java.util.Map<java.lang.String,java.util.concurrent.Executor> executors)
setExecutors
- Specified by:
setExecutors
in interfaceTaskCoordinator
- Parameters:
executors
- aMap
object.
-
-