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.
  • Constructor Summary

    Constructors
    Constructor
    Description
    ThreadTimer(Executor defaultExecutor)
    Creates a timer with given defaultExecutor, unless a timer already exists, in which case an exception is thrown.
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    Returns the number of tasks that are currently scheduled for execution by the timer.
    create(Executor defaultExecutor)
    Deprecated, for removal: This API element is subject to removal in a future version.
    int
    Returns the ID of this timer.
    schedule(long delayInMillis, Runnable task)
    Schedules the task to be executed in delayInMillis on this timer's default Executor.
    schedule(long delayInMillis, Runnable task, Executor executor)
    Schedules the task to be executed in delayInMillis on given executor.
    void
    Shuts down this timer.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ThreadTimer

      public ThreadTimer(Executor defaultExecutor)
      Creates a timer with given defaultExecutor, unless a timer already exists, in which case an exception is thrown.
      Parameters:
      defaultExecutor - default Executor used for running scheduled tasks, unless an executor is provided when scheduling a task
  • Method Details

    • create

      @Deprecated(forRemoval=true) public static ThreadTimer create(Executor defaultExecutor)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • getId

      public int getId()
      Description copied from interface: Timer
      Returns the ID of this timer. Timer IDs are guaranteed to be unique.
      Specified by:
      getId in interface Timer
      Returns:
      the ID of this timer
    • schedule

      public TimerTask schedule(long delayInMillis, Runnable task)
      Description copied from interface: Timer
      Schedules the task to be executed in delayInMillis on this timer's default Executor.

      Equivalent to schedule(delayInMillis, task, null).

      Specified by:
      schedule in interface Timer
    • schedule

      public TimerTask schedule(long delayInMillis, Runnable task, Executor executor)
      Description copied from interface: Timer
      Schedules the task to be executed in delayInMillis on given executor. If executor is null, this timer's default executor is used.
      Specified by:
      schedule in interface Timer
    • countScheduledTasks

      public int countScheduledTasks()
      Description copied from interface: Timer
      Returns 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:
      countScheduledTasks in interface Timer
      Returns:
      the number of currently scheduled tasks
    • shutdown

      public void shutdown() throws InterruptedException
      Description copied from interface: Timer
      Shuts down this timer. Returns after all internal resources of this timer are shut down.
      Specified by:
      shutdown in interface Timer
      Throws:
      InterruptedException