package org.atomnuke.task.manager; import org.atomnuke.plugin.InstanceContext; import org.atomnuke.util.lifecycle.runnable.ReclaimableTask; import org.atomnuke.task.TaskHandle; import org.atomnuke.task.polling.PollingController; import org.atomnuke.util.TimeValue; /** * * @author zinic */ public interface Tasker { /** * Runs the task once and only once as soon as possible. * * @param instanceContext * @return */ void queueAction(InstanceContext<? extends ReclaimableTask> instanceContext); /** * Runs the task according to the polling controller so long as the task has not been canceled. * @param instanceContext * @param pollingController * @return */ TaskHandle queueTask(InstanceContext<? extends ReclaimableTask> instanceContext, PollingController pollingController); /** * Runs the task according to a polling interval so long as the task has not been canceled. * * @param instanceContext * @param pollingInterval * @return */ TaskHandle pollTask(InstanceContext<? extends ReclaimableTask> instanceContext, TimeValue pollingInterval); }