org.apache.cassandra.concurrent

## Class DebuggableScheduledThreadPoolExecutor

- java.lang.Object
- - java.util.concurrent.AbstractExecutorService
  - - java.util.concurrent.ThreadPoolExecutor
    - - java.util.concurrent.ScheduledThreadPoolExecutor
      - - org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor

- All Implemented Interfaces:
    java.util.concurrent.Executor, java.util.concurrent.ExecutorService, java.util.concurrent.ScheduledExecutorService

      public class DebuggableScheduledThreadPoolExecutor
      extends java.util.concurrent.ScheduledThreadPoolExecutor

  Like DebuggableThreadPoolExecutor, DebuggableScheduledThreadPoolExecutor always logs exceptions from the tasks it is given, even if Future.get is never called elsewhere. DebuggableScheduledThreadPoolExecutor also catches exceptions during Task execution so that they don't supress subsequent invocations of the task.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class java.util.concurrent.ThreadPoolExecutor

      `java.util.concurrent.ThreadPoolExecutor.AbortPolicy, java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy, java.util.concurrent.ThreadPoolExecutor.DiscardOldestPolicy, java.util.concurrent.ThreadPoolExecutor.DiscardPolicy`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DebuggableScheduledThreadPoolExecutor(int corePoolSize, java.lang.String threadPoolName, int priority)`
    `DebuggableScheduledThreadPoolExecutor(java.lang.String threadPoolName)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `afterExecute(java.lang.Runnable r, java.lang.Throwable t)`
    `java.util.concurrent.ScheduledFuture<?>` | `scheduleAtFixedRate(java.lang.Runnable command, long initialDelay, long period, java.util.concurrent.TimeUnit unit)`
    `java.util.concurrent.ScheduledFuture<?>` | `scheduleWithFixedDelay(java.lang.Runnable command, long initialDelay, long delay, java.util.concurrent.TimeUnit unit)`

    - ### Methods inherited from class java.util.concurrent.ScheduledThreadPoolExecutor

      `decorateTask, decorateTask, execute, getContinueExistingPeriodicTasksAfterShutdownPolicy, getExecuteExistingDelayedTasksAfterShutdownPolicy, getQueue, getRemoveOnCancelPolicy, schedule, schedule, setContinueExistingPeriodicTasksAfterShutdownPolicy, setExecuteExistingDelayedTasksAfterShutdownPolicy, setRemoveOnCancelPolicy, shutdown, shutdownNow, submit, submit, submit`

    - ### Methods inherited from class java.util.concurrent.ThreadPoolExecutor

      `allowCoreThreadTimeOut, allowsCoreThreadTimeOut, awaitTermination, beforeExecute, finalize, getActiveCount, getCompletedTaskCount, getCorePoolSize, getKeepAliveTime, getLargestPoolSize, getMaximumPoolSize, getPoolSize, getRejectedExecutionHandler, getTaskCount, getThreadFactory, isShutdown, isTerminated, isTerminating, prestartAllCoreThreads, prestartCoreThread, purge, remove, setCorePoolSize, setKeepAliveTime, setMaximumPoolSize, setRejectedExecutionHandler, setThreadFactory, terminated, toString`

    - ### Methods inherited from class java.util.concurrent.AbstractExecutorService

      `invokeAll, invokeAll, invokeAny, invokeAny, newTaskFor, newTaskFor`

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

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

    - ### Methods inherited from interface java.util.concurrent.ExecutorService

      `awaitTermination, invokeAll, invokeAll, invokeAny, invokeAny, isShutdown, isTerminated`

- - ### Constructor Detail

    - #### DebuggableScheduledThreadPoolExecutor

          public DebuggableScheduledThreadPoolExecutor(int corePoolSize,
                                               java.lang.String threadPoolName,
                                               int priority)

    - #### DebuggableScheduledThreadPoolExecutor

          public DebuggableScheduledThreadPoolExecutor(java.lang.String threadPoolName)

  - ### Method Detail

    - #### afterExecute

          public void afterExecute(java.lang.Runnable r,
                          java.lang.Throwable t)

      Overrides:
        `afterExecute` in class `java.util.concurrent.ThreadPoolExecutor`

    - #### scheduleAtFixedRate

          public java.util.concurrent.ScheduledFuture<?> scheduleAtFixedRate(java.lang.Runnable command,
                                                                    long initialDelay,
                                                                    long period,
                                                                    java.util.concurrent.TimeUnit unit)

      Specified by:
        `scheduleAtFixedRate` in interface `java.util.concurrent.ScheduledExecutorService`
      Overrides:
        `scheduleAtFixedRate` in class `java.util.concurrent.ScheduledThreadPoolExecutor`

    - #### scheduleWithFixedDelay

          public java.util.concurrent.ScheduledFuture<?> scheduleWithFixedDelay(java.lang.Runnable command,
                                                                       long initialDelay,
                                                                       long delay,
                                                                       java.util.concurrent.TimeUnit unit)

      Specified by:
        `scheduleWithFixedDelay` in interface `java.util.concurrent.ScheduledExecutorService`
      Overrides:
        `scheduleWithFixedDelay` in class `java.util.concurrent.ScheduledThreadPoolExecutor`

Copyright © 2014 The Apache Software Foundation