public interface PrioritySchedulerService extends SchedulerService
Modifier and Type | Method and Description |
---|---|
void |
execute(java.lang.Runnable task,
TaskPriority priority)
Executes the task as soon as possible for the given priority.
|
TaskPriority |
getDefaultPriority()
Get the default priority for the scheduler.
|
long |
getMaxWaitForLowPriority()
Getter for the amount of time a low priority task will wait during thread contention before
it is eligible for execution.
|
int |
getQueuedTaskCount(TaskPriority priority)
Returns a count of how many tasks are either waiting to be executed, or are scheduled to be
executed at a future point for a specific priority.
|
int |
getWaitingForExecutionTaskCount(TaskPriority priority)
Returns a count of how many tasks are either waiting to be executed for a specific priority.
|
void |
schedule(java.lang.Runnable task,
long delayInMs,
TaskPriority priority)
Schedule a task with a given delay and a specified priority.
|
void |
scheduleAtFixedRate(java.lang.Runnable task,
long initialDelay,
long period,
TaskPriority priority)
Schedule a fixed rate recurring task to run.
|
void |
scheduleWithFixedDelay(java.lang.Runnable task,
long initialDelay,
long recurringDelay,
TaskPriority priority)
Schedule a fixed delay recurring task to run.
|
<T> ListenableFuture<T> |
submit(java.util.concurrent.Callable<T> task,
TaskPriority priority)
Submit a
Callable to run as soon as possible for the given priority. |
default ListenableFuture<?> |
submit(java.lang.Runnable task,
TaskPriority priority)
Submit a task to run as soon as possible for the given priority.
|
<T> ListenableFuture<T> |
submit(java.lang.Runnable task,
T result,
TaskPriority priority)
Submit a task to run as soon as possible for the given priority.
|
<T> ListenableFuture<T> |
submitScheduled(java.util.concurrent.Callable<T> task,
long delayInMs,
TaskPriority priority)
Schedule a
Callable with a given delay. |
default ListenableFuture<?> |
submitScheduled(java.lang.Runnable task,
long delayInMs,
TaskPriority priority)
Schedule a task with a given delay and a specified priority.
|
<T> ListenableFuture<T> |
submitScheduled(java.lang.Runnable task,
T result,
long delayInMs,
TaskPriority priority)
Schedule a task with a given delay and a specified priority.
|
getActiveTaskCount, getQueuedTaskCount, getWaitingForExecutionTaskCount, isShutdown, remove, remove
schedule, scheduleAtFixedRate, scheduleWithFixedDelay, submitScheduled, submitScheduled, submitScheduled
submit, submit, submit
void execute(java.lang.Runnable task, TaskPriority priority)
task
- runnable to executepriority
- priority for task to get available thread to run ondefault ListenableFuture<?> submit(java.lang.Runnable task, TaskPriority priority)
The Future.get()
method will return null
once the runnable has
completed.
task
- runnable to be executedpriority
- priority for task to get available thread to run on<T> ListenableFuture<T> submit(java.lang.Runnable task, T result, TaskPriority priority)
The Future.get()
method will return the provided result once the runnable has
completed.
T
- type of result returned from the futuretask
- runnable to be executedresult
- result to be returned from resulting future .get() when runnable completespriority
- priority for task to get available thread to run on<T> ListenableFuture<T> submit(java.util.concurrent.Callable<T> task, TaskPriority priority)
Callable
to run as soon as possible for the given priority. This is needed
when a result needs to be consumed from the callable.T
- type of result returned from the futuretask
- callable to be executedpriority
- priority for task to get available thread to run onvoid schedule(java.lang.Runnable task, long delayInMs, TaskPriority priority)
task
- runnable to executedelayInMs
- time in milliseconds to wait to execute taskpriority
- priority for task to get available thread to run ondefault ListenableFuture<?> submitScheduled(java.lang.Runnable task, long delayInMs, TaskPriority priority)
submitScheduled(Runnable, long, TaskPriority)
over
schedule(Runnable, long, TaskPriority)
. So this should only be used when the
future is necessary.
The Future.get()
method will return null once the runnable has completed.
task
- runnable to executedelayInMs
- time in milliseconds to wait to execute taskpriority
- priority for task to get available thread to run on<T> ListenableFuture<T> submitScheduled(java.lang.Runnable task, T result, long delayInMs, TaskPriority priority)
The Future.get()
method will return the provided result once the runnable
has completed.
T
- type of result returned from the futuretask
- runnable to executeresult
- result to be returned from resulting future .get() when runnable completesdelayInMs
- time in milliseconds to wait to execute taskpriority
- priority for task to get available thread to run on<T> ListenableFuture<T> submitScheduled(java.util.concurrent.Callable<T> task, long delayInMs, TaskPriority priority)
Callable
with a given delay. This is needed when a result needs to be
consumed from the callable.T
- type of result returned from the futuretask
- callable to be executeddelayInMs
- time in milliseconds to wait to execute taskpriority
- priority for task to get available thread to run onvoid scheduleWithFixedDelay(java.lang.Runnable task, long initialDelay, long recurringDelay, TaskPriority priority)
recurringDelay + runtime
for the provided task.
Unlike ScheduledExecutorService
if the task throws an exception,
subsequent executions are NOT suppressed or prevented. So if the task throws an exception on
every run, the task will continue to be executed at the provided recurring delay (possibly
throwing an exception on each execution).
task
- runnable to be executedinitialDelay
- delay in milliseconds until first runrecurringDelay
- delay in milliseconds for running task after last finishpriority
- priority for task to get available thread to run onvoid scheduleAtFixedRate(java.lang.Runnable task, long initialDelay, long period, TaskPriority priority)
Unlike ScheduledExecutorService
if the task throws an exception,
subsequent executions are NOT suppressed or prevented. So if the task throws an exception on
every run, the task will continue to be executed at the provided recurring delay (possibly
throwing an exception on each execution).
task
- runnable to be executedinitialDelay
- delay in milliseconds until first runperiod
- amount of time in milliseconds between the start of recurring executionspriority
- priority for task to get available thread to run onTaskPriority getDefaultPriority()
long getMaxWaitForLowPriority()
int getQueuedTaskCount(TaskPriority priority)
getWaitingForExecutionTaskCount(TaskPriority)
.priority
- priority for tasks to be countedint getWaitingForExecutionTaskCount(TaskPriority priority)
priority
- priority for tasks to be counted