Interface Scheduler

All Superinterfaces:
Executor
All Known Implementing Classes:
SchedulerManager

public sealed interface Scheduler extends Executor permits SchedulerManager (not exhaustive)
Represents a scheduler that will execute tasks with a precision based on its ticking rate. If precision is important, consider using a JDK executor service or any third party library.

Tasks are by default executed in the caller thread.

  • Method Details

    • newScheduler

      static Scheduler newScheduler()
    • process

      void process()
      Process scheduled tasks based on time to increase scheduling precision.

      This method is not thread-safe.

    • processTick

      void processTick()
      Advance 1 tick and call process().

      This method is not thread-safe.

    • processTickEnd

      void processTickEnd()
      Execute tasks set to run at the end of this tick.

      This method is not thread-safe.

    • submitTask

      Task submitTask(Supplier<TaskSchedule> task, ExecutionType executionType)
      Submits a new task with custom scheduling logic.

      This is the primitive method used by all scheduling shortcuts, task is immediately executed in the caller thread to retrieve its scheduling state and the task will stay alive as long as TaskSchedule.stop() is not returned (or Task.cancel() is called).

      Parameters:
      task - the task to be directly executed in the caller thread
      executionType - the execution type
      Returns:
      the created task
    • submitTask

      default Task submitTask(Supplier<TaskSchedule> task)
    • buildTask

      default Task.Builder buildTask(Runnable task)
    • scheduleTask

      default Task scheduleTask(Runnable task, TaskSchedule delay, TaskSchedule repeat, ExecutionType executionType)
    • scheduleTask

      default Task scheduleTask(Runnable task, TaskSchedule delay, TaskSchedule repeat)
    • scheduleTask

      default Task scheduleTask(Supplier<TaskSchedule> task, TaskSchedule delay)
    • scheduleNextTick

      default Task scheduleNextTick(Runnable task, ExecutionType executionType)
    • scheduleNextTick

      default Task scheduleNextTick(Runnable task)
    • scheduleEndOfTick

      default Task scheduleEndOfTick(Runnable task)
    • scheduleNextProcess

      default Task scheduleNextProcess(Runnable task, ExecutionType executionType)
    • scheduleNextProcess

      default Task scheduleNextProcess(Runnable task)
    • execute

      default void execute(Runnable command)
      Implementation of Executor, proxies to scheduleNextTick(Runnable).
      Specified by:
      execute in interface Executor
      Parameters:
      command - the task to execute on the next tick