Class ThreadTimer
- java.lang.Object
-
- io.smallrye.faulttolerance.core.timer.ThreadTimer
-
- All Implemented Interfaces:
Timer
public final class ThreadTimer extends Object implements Timer
Starts one thread that processes submitted tasks in a loop and when it's time for a task to run, it gets submitted to the executor. The default executor is provided by a caller, so the caller must shut down this timer before shutting down the executor.At most one timer may exist.
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description intcountScheduledTasks()Returns the number of tasks that are currently scheduled for execution by the timer.static ThreadTimercreate(Executor defaultExecutor)Creates a timer with givendefaultExecutor, unless a timer already exists, in which case an exception is thrown.TimerTaskschedule(long delayInMillis, Runnable task)TimerTaskschedule(long delayInMillis, Runnable task, Executor executor)Schedules thetaskto be executed indelayInMillison givenexecutor.voidshutdown()Shuts down this timer.
-
-
-
Method Detail
-
create
public static ThreadTimer create(Executor defaultExecutor)
Creates a timer with givendefaultExecutor, unless a timer already exists, in which case an exception is thrown.- Parameters:
defaultExecutor- defaultExecutorused for running scheduled tasks, unless an executor is provided when scheduling a task
-
schedule
public TimerTask schedule(long delayInMillis, Runnable task)
Description copied from interface:TimerSchedules thetaskto be executed indelayInMillison this timer's defaultExecutor.Equivalent to
schedule(delayInMillis, task, null).
-
schedule
public TimerTask schedule(long delayInMillis, Runnable task, Executor executor)
Description copied from interface:TimerSchedules thetaskto be executed indelayInMillison givenexecutor. Ifexecutorisnull, this timer's default executor is used.
-
countScheduledTasks
public int countScheduledTasks()
Description copied from interface:TimerReturns the number of tasks that are currently scheduled for execution by the timer. Finished tasks and tasks that are already running are not included.- Specified by:
countScheduledTasksin interfaceTimer- Returns:
- the number of currently scheduled tasks
-
shutdown
public void shutdown() throws InterruptedExceptionDescription copied from interface:TimerShuts down this timer. Returns after all internal resources of this timer are shut down.- Specified by:
shutdownin interfaceTimer- Throws:
InterruptedException
-
-