## 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 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 the `AbstractScheduledService.CustomScheduler` abstract class in preference to creating your own `AbstractScheduledService.Scheduler` implementation.

Since:
  11.0
Author:
  Luke Sandberg

Method Summary
`static AbstractScheduledService.Scheduler` `newFixedDelaySchedule(long initialDelay, long delay, 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, 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,
                                                                           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,
                                                                          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

Copyright © 2010-2012. All Rights Reserved.