public class ScheduledExecutorTask extends Object
Runnable
and a delay plus period. The period needs to be specified;
there is no point in a default for it.
The JDK 1.5 ScheduledExecutorService
does
not offer more sophisticated scheduling options such as cron expressions.
Consider using Quartz for such advanced needs.
Note that the ScheduledExecutorService
mechanism
uses a Runnable
instance that is shared between repeated executions,
in contrast to Quartz which creates a new Job instance for each execution.
Constructor and Description |
---|
ScheduledExecutorTask()
Create a new ScheduledExecutorTask,
to be populated via bean properties.
|
ScheduledExecutorTask(Runnable executorTask)
Create a new ScheduledExecutorTask, with default
one-time execution without delay.
|
ScheduledExecutorTask(Runnable executorTask,
long delay)
Create a new ScheduledExecutorTask, with default
one-time execution with the given delay.
|
ScheduledExecutorTask(Runnable executorTask,
long delay,
long period,
boolean fixedRate)
Create a new ScheduledExecutorTask.
|
Modifier and Type | Method and Description |
---|---|
long |
getDelay()
Return the delay before starting the job for the first time.
|
long |
getPeriod()
Return the period between repeated task executions.
|
Runnable |
getRunnable()
Return the Runnable to schedule as executor task.
|
TimeUnit |
getTimeUnit()
Return the time unit for the delay and period values.
|
boolean |
isFixedRate()
Return whether to schedule as fixed-rate execution.
|
boolean |
isOneTimeTask()
Is this task only ever going to execute once?
|
void |
setDelay(long delay)
Set the delay before starting the task for the first time,
in milliseconds.
|
void |
setFixedRate(boolean fixedRate)
Set whether to schedule as fixed-rate execution, rather than
fixed-delay execution.
|
void |
setPeriod(long period)
Set the period between repeated task executions, in milliseconds.
|
void |
setRunnable(Runnable executorTask)
Set the Runnable to schedule as executor task.
|
void |
setTimeUnit(TimeUnit timeUnit)
Specify the time unit for the delay and period values.
|
public ScheduledExecutorTask()
setDelay(long)
,
setPeriod(long)
,
setFixedRate(boolean)
public ScheduledExecutorTask(Runnable executorTask)
executorTask
- the Runnable to schedulepublic ScheduledExecutorTask(Runnable executorTask, long delay)
executorTask
- the Runnable to scheduledelay
- the delay before starting the task for the first time (ms)public ScheduledExecutorTask(Runnable executorTask, long delay, long period, boolean fixedRate)
executorTask
- the Runnable to scheduledelay
- the delay before starting the task for the first time (ms)period
- the period between repeated task executions (ms)fixedRate
- whether to schedule as fixed-rate executionpublic void setRunnable(Runnable executorTask)
public Runnable getRunnable()
public void setDelay(long delay)
public long getDelay()
public void setPeriod(long period)
Default is -1, leading to one-time execution. In case of a positive value, the task will be executed repeatedly, with the given interval inbetween executions.
Note that the semantics of the period value vary between fixed-rate and fixed-delay execution.
Note: A period of 0 (for example as fixed delay) is not supported,
simply because java.util.concurrent.ScheduledExecutorService
itself
does not support it. Hence a value of 0 will be treated as one-time execution;
however, that value should never be specified explicitly in the first place!
public long getPeriod()
public boolean isOneTimeTask()
true
if this task is only ever going to execute oncegetPeriod()
public void setTimeUnit(TimeUnit timeUnit)
TimeUnit.MILLISECONDS
).TimeUnit.MILLISECONDS
,
TimeUnit.SECONDS
public TimeUnit getTimeUnit()
public void setFixedRate(boolean fixedRate)
See ScheduledExecutorService javadoc for details on those execution modes.
public boolean isFixedRate()