## com.google.common.util.concurrent
Class AbstractScheduledService.CustomScheduler

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

Enclosing class:
  AbstractScheduledService

    @Beta
    public abstract static class AbstractScheduledService.CustomScheduler

extends AbstractScheduledService.Scheduler

A `AbstractScheduledService.Scheduler` that provides a convenient way for the `AbstractScheduledService` to use a dynamically changing schedule. After every execution of the task, assuming it hasn't been cancelled, the `getNextSchedule()` method will be called.

Since:
  11.0
Author:
  Luke Sandberg

Nested Class Summary
`protected static class` `AbstractScheduledService.CustomScheduler.Schedule` A value object that represents an absolute delay until a task should be invoked.

Constructor Summary
`AbstractScheduledService.CustomScheduler()`

Method Summary
`protected abstract AbstractScheduledService.CustomScheduler.Schedule` `getNextSchedule()` Calculates the time at which to next invoke the task.

Methods inherited from class com.google.common.util.concurrent.AbstractScheduledService.Scheduler
`newFixedDelaySchedule, newFixedRateSchedule`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### AbstractScheduledService.CustomScheduler

    public AbstractScheduledService.CustomScheduler()

Method Detail

### getNextSchedule

    protected abstract AbstractScheduledService.CustomScheduler.Schedule getNextSchedule()
                                                                                  throws Exception

  Calculates the time at which to next invoke the task.

  This is guaranteed to be called immediately after the task has completed an iteration and on the same thread as the previous execution of `AbstractScheduledService.runOneIteration()`.

  Returns:
    a schedule that defines the delay before the next execution.
  Throws:
    `Exception`

Copyright © 2010-2012. All Rights Reserved.