Package net.md_5.bungee.api.scheduler

# Interface TaskScheduler

public interface TaskScheduler
This interface represents a scheduler which may be used to queue, delay and execute tasks in an asynchronous fashion.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Interface
  Description
  `static interface`
  `TaskScheduler.Unsafe`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `cancel(int id)`
  Cancel a task to prevent it from executing, or if its a repeating task, prevent its further execution.
  `int`
  `cancel(Plugin plugin)`
  Cancel all tasks owned by this plugin, this preventing them from being executed hereon in.
  `void`
  `cancel(ScheduledTask task)`
  Cancel a task to prevent it from executing, or if its a repeating task, prevent its further execution.
  `ScheduledTask`
  `runAsync(Plugin owner, Runnable task)`
  Schedule a task to be executed asynchronously.
  `ScheduledTask`
  `schedule(Plugin owner, Runnable task, long delay, long period, TimeUnit unit)`
  Schedules a task to be executed asynchronously after the specified delay is up.
  `ScheduledTask`
  `schedule(Plugin owner, Runnable task, long delay, TimeUnit unit)`
  Schedules a task to be executed asynchronously after the specified delay is up.
  `TaskScheduler.Unsafe`
  `unsafe()`
  Get the unsafe methods of this class.

- ## Method Details

  - ### cancel

    void cancel(int id)
    Cancel a task to prevent it from executing, or if its a repeating task, prevent its further execution.
    Parameters:
      `id` - the id of the task to cancel

  - ### cancel

    void cancel(ScheduledTask task)
    Cancel a task to prevent it from executing, or if its a repeating task, prevent its further execution.
    Parameters:
      `task` - the task to cancel

  - ### cancel

    int cancel(Plugin plugin)
    Cancel all tasks owned by this plugin, this preventing them from being executed hereon in.
    Parameters:
      `plugin` - the plugin owning the tasks to be cancelled
    Returns:
      the number of tasks cancelled by this method

  - ### runAsync

    ScheduledTask runAsync(Plugin owner, Runnable task)
    Schedule a task to be executed asynchronously. The task will commence running as soon as this method returns.
    Parameters:
      `owner` - the plugin owning this task
      `task` - the task to run
    Returns:
      the scheduled task

  - ### schedule

    ScheduledTask schedule(Plugin owner, Runnable task, long delay, TimeUnit unit)
    Schedules a task to be executed asynchronously after the specified delay is up.
    Parameters:
      `owner` - the plugin owning this task
      `task` - the task to run
      `delay` - the delay before this task will be executed
      `unit` - the unit in which the delay will be measured
    Returns:
      the scheduled task

  - ### schedule

    ScheduledTask schedule(Plugin owner, Runnable task, long delay, long period, TimeUnit unit)
    Schedules a task to be executed asynchronously after the specified delay is up. The scheduled task will continue running at the specified interval. The interval will not begin to count down until the last task invocation is complete.
    Parameters:
      `owner` - the plugin owning this task
      `task` - the task to run
      `delay` - the delay before this task will be executed
      `period` - the interval before subsequent executions of this task
      `unit` - the unit in which the delay and period will be measured
    Returns:
      the scheduled task

  - ### unsafe

    TaskScheduler.Unsafe unsafe()
    Get the unsafe methods of this class.
    Returns:
      the unsafe method interface