package tech.powerjob.server.common.timewheel;
|
|
/**
|
* TimerFuture
|
*
|
* @author tjq
|
* @since 2020/4/3
|
*/
|
public interface TimerFuture {
|
|
TimerTask getTask();
|
|
/**
|
* Attempts to cancel execution of this task. This attempt will
|
* fail if the task has already completed, has already been cancelled,
|
* or could not be cancelled for some other reason. If successful,
|
* and this task has not started when {@code cancel} is called,
|
* this task should never run. If the task has already started,
|
* then the {@code mayInterruptIfRunning} parameter determines
|
* whether the thread executing this task should be interrupted in
|
* an attempt to stop the task.
|
*
|
* <p>After this method returns, subsequent calls to {@link #isDone} will
|
* always return {@code true}. Subsequent calls to {@link #isCancelled}
|
* will always return {@code true} if this method returned {@code true}.
|
*
|
*/
|
boolean cancel();
|
|
/**
|
* Returns {@code true} if this task was cancelled before it completed
|
* normally.
|
*
|
* @return {@code true} if this task was cancelled before it completed
|
*/
|
boolean isCancelled();
|
|
/**
|
* Returns {@code true} if this task completed.
|
*
|
* Completion may be due to normal termination, an exception, or
|
* cancellation -- in all of these cases, this method will return
|
* {@code true}.
|
*
|
* @return {@code true} if this task completed
|
*/
|
boolean isDone();
|
}
|