Interface Scheduler

All Known Implementing Classes:
SchedulerManager

public sealed interface Scheduler 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

      @NotNull static @NotNull 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.

    • submitTask

      @NotNull @NotNull Task submitTask(@NotNull @NotNull Supplier<TaskSchedule> task, @NotNull @NotNull 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

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

      @NotNull default Task.Builder buildTask(@NotNull @NotNull Runnable task)
    • scheduleTask

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

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

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

      @NotNull default @NotNull Task scheduleNextTick(@NotNull @NotNull Runnable task)
    • scheduleNextProcess

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

      @NotNull default @NotNull Task scheduleNextProcess(@NotNull @NotNull Runnable task)