Class CloseableScheduledExecutorService

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable

    public class CloseableScheduledExecutorService
    extends CloseableExecutorService
    Decoration on an ScheduledExecutorService that tracks created futures and provides a method to close futures created via this class
    • Constructor Detail

      • CloseableScheduledExecutorService

        public CloseableScheduledExecutorService​(java.util.concurrent.ScheduledExecutorService scheduledExecutorService)
        Parameters:
        scheduledExecutorService - the service to decorate
      • CloseableScheduledExecutorService

        public CloseableScheduledExecutorService​(java.util.concurrent.ScheduledExecutorService scheduledExecutorService,
                                                 boolean shutdownOnClose)
        Parameters:
        scheduledExecutorService - the service to decorate
        shutdownOnClose - if true, shutdown the executor service when this is closed
    • Method Detail

      • schedule

        public java.util.concurrent.Future<?> schedule​(java.lang.Runnable task,
                                                       long delay,
                                                       java.util.concurrent.TimeUnit unit)
        Creates and executes a one-shot action that becomes enabled after the given delay.
        Parameters:
        task - the task to execute
        delay - the time from now to delay execution
        unit - the time unit of the delay parameter
        Returns:
        a Future representing pending completion of the task and whose get() method will return null upon completion
      • scheduleWithFixedDelay

        public java.util.concurrent.Future<?> scheduleWithFixedDelay​(java.lang.Runnable task,
                                                                     long initialDelay,
                                                                     long delay,
                                                                     java.util.concurrent.TimeUnit unit)
        Creates and executes a periodic action that becomes enabled first after the given initial delay, and subsequently with the given delay between the termination of one execution and the commencement of the next. If any execution of the task encounters an exception, subsequent executions are suppressed. Otherwise, the task will only terminate via cancellation or termination of the executor.
        Parameters:
        task - the task to execute
        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
        Returns:
        a Future representing pending completion of the task, and whose get() method will throw an exception upon cancellation