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 ScheduledExecutorService does not offer
more sophisticated scheduling options such as cron expressions.
Consider using ThreadPoolTaskScheduler for such 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 in-between 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(@Nullable TimeUnit timeUnit)
TimeUnit.MILLISECONDS).TimeUnit.MILLISECONDS,
TimeUnit.SECONDSpublic TimeUnit getTimeUnit()
public void setFixedRate(boolean fixedRate)
See ScheduledExecutorService javadoc for details on those execution modes.
public boolean isFixedRate()