com.google.common.util.concurrent

## Class AbstractScheduledService.Scheduler

- java.lang.Object
- - com.google.common.util.concurrent.AbstractScheduledService.Scheduler

- Direct Known Subclasses:
    AbstractScheduledService.CustomScheduler
  Enclosing class:
    AbstractScheduledService

      public abstract static class AbstractScheduledService.Scheduler
      extends java.lang.Object

  A scheduler defines the policy for how the `AbstractScheduledService` should run its task.

  Consider using the `newFixedDelaySchedule(long, long, java.util.concurrent.TimeUnit)` and `newFixedRateSchedule(long, long, java.util.concurrent.TimeUnit)` factory methods, these provide `AbstractScheduledService.Scheduler` instances for the common use case of running the service with a fixed schedule. If more flexibility is needed then consider subclassing `AbstractScheduledService.CustomScheduler`.

  Since:
    11.0

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static AbstractScheduledService.Scheduler` | `newFixedDelaySchedule(long initialDelay, long delay, java.util.concurrent.TimeUnit unit)` Returns a `AbstractScheduledService.Scheduler` that schedules the task using the `ScheduledExecutorService.scheduleWithFixedDelay(java.lang.Runnable, long, long, java.util.concurrent.TimeUnit)` method.
    `static AbstractScheduledService.Scheduler` | `newFixedRateSchedule(long initialDelay, long period, java.util.concurrent.TimeUnit unit)` Returns a `AbstractScheduledService.Scheduler` that schedules the task using the `ScheduledExecutorService.scheduleAtFixedRate(java.lang.Runnable, long, long, java.util.concurrent.TimeUnit)` method.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### newFixedDelaySchedule

          public static AbstractScheduledService.Scheduler newFixedDelaySchedule(long initialDelay,
                                                                 long delay,
                                                                 java.util.concurrent.TimeUnit unit)

      Returns a `AbstractScheduledService.Scheduler` that schedules the task using the `ScheduledExecutorService.scheduleWithFixedDelay(java.lang.Runnable, long, long, java.util.concurrent.TimeUnit)` method.
      Parameters:
        `initialDelay` - the time to delay first execution
        `delay` - the delay between the termination of one execution and the commencement of the next
        `unit` - the time unit of the initialDelay and delay parameters

    - #### newFixedRateSchedule

          public static AbstractScheduledService.Scheduler newFixedRateSchedule(long initialDelay,
                                                                long period,
                                                                java.util.concurrent.TimeUnit unit)

      Returns a `AbstractScheduledService.Scheduler` that schedules the task using the `ScheduledExecutorService.scheduleAtFixedRate(java.lang.Runnable, long, long, java.util.concurrent.TimeUnit)` method.
      Parameters:
        `initialDelay` - the time to delay first execution
        `period` - the period between successive executions of the task
        `unit` - the time unit of the initialDelay and period parameters