org.springframework.scheduling.concurrent

Class ConcurrentTaskScheduler

    • Constructor Detail

      • ConcurrentTaskScheduler

        public ConcurrentTaskScheduler()
        Create a new ConcurrentTaskScheduler, using a single thread executor as default.
        See Also:
        Executors.newSingleThreadScheduledExecutor()
      • ConcurrentTaskScheduler

        public ConcurrentTaskScheduler(java.util.concurrent.ScheduledExecutorService scheduledExecutor)
        Create a new ConcurrentTaskScheduler, using the given ScheduledExecutorService as shared delegate.

        Autodetects a JSR-236 ManagedScheduledExecutorService in order to use it for trigger-based scheduling if possible, instead of Spring's local trigger management.

        Parameters:
        scheduledExecutor - the ScheduledExecutorService to delegate to for SchedulingTaskExecutor as well as TaskScheduler invocations
      • ConcurrentTaskScheduler

        public ConcurrentTaskScheduler(java.util.concurrent.Executor concurrentExecutor,
                                       java.util.concurrent.ScheduledExecutorService scheduledExecutor)
        Create a new ConcurrentTaskScheduler, using the given Executor and ScheduledExecutorService as delegates.

        Autodetects a JSR-236 ManagedScheduledExecutorService in order to use it for trigger-based scheduling if possible, instead of Spring's local trigger management.

        Parameters:
        concurrentExecutor - the Executor to delegate to for SchedulingTaskExecutor invocations
        scheduledExecutor - the ScheduledExecutorService to delegate to for TaskScheduler invocations
    • Method Detail

      • schedule

        @Nullable
        public java.util.concurrent.ScheduledFuture<?> schedule(java.lang.Runnable task,
                                                                          Trigger trigger)
        Description copied from interface: TaskScheduler
        Schedule the given Runnable, invoking it whenever the trigger indicates a next execution time.

        Execution will end once the scheduler shuts down or the returned ScheduledFuture gets cancelled.

        Specified by:
        schedule in interface TaskScheduler
        Parameters:
        task - the Runnable to execute whenever the trigger fires
        trigger - an implementation of the Trigger interface, e.g. a CronTrigger object wrapping a cron expression
        Returns:
        a ScheduledFuture representing pending completion of the task, or null if the given Trigger object never fires (i.e. returns null from Trigger.nextExecutionTime(org.springframework.scheduling.TriggerContext))
        See Also:
        CronTrigger
      • schedule

        public java.util.concurrent.ScheduledFuture<?> schedule(java.lang.Runnable task,
                                                                java.util.Date startTime)
        Description copied from interface: TaskScheduler
        Schedule the given Runnable, invoking it at the specified execution time.

        Execution will end once the scheduler shuts down or the returned ScheduledFuture gets cancelled.

        Specified by:
        schedule in interface TaskScheduler
        Parameters:
        task - the Runnable to execute whenever the trigger fires
        startTime - the desired execution time for the task (if this is in the past, the task will be executed immediately, i.e. as soon as possible)
        Returns:
        a ScheduledFuture representing pending completion of the task
      • scheduleAtFixedRate

        public java.util.concurrent.ScheduledFuture<?> scheduleAtFixedRate(java.lang.Runnable task,
                                                                           java.util.Date startTime,
                                                                           long period)
        Description copied from interface: TaskScheduler
        Schedule the given Runnable, invoking it at the specified execution time and subsequently with the given period.

        Execution will end once the scheduler shuts down or the returned ScheduledFuture gets cancelled.

        Specified by:
        scheduleAtFixedRate in interface TaskScheduler
        Parameters:
        task - the Runnable to execute whenever the trigger fires
        startTime - the desired first execution time for the task (if this is in the past, the task will be executed immediately, i.e. as soon as possible)
        period - the interval between successive executions of the task (in milliseconds)
        Returns:
        a ScheduledFuture representing pending completion of the task
      • scheduleAtFixedRate

        public java.util.concurrent.ScheduledFuture<?> scheduleAtFixedRate(java.lang.Runnable task,
                                                                           long period)
        Description copied from interface: TaskScheduler
        Schedule the given Runnable, starting as soon as possible and invoking it with the given period.

        Execution will end once the scheduler shuts down or the returned ScheduledFuture gets cancelled.

        Specified by:
        scheduleAtFixedRate in interface TaskScheduler
        Parameters:
        task - the Runnable to execute whenever the trigger fires
        period - the interval between successive executions of the task (in milliseconds)
        Returns:
        a ScheduledFuture representing pending completion of the task
      • scheduleWithFixedDelay

        public java.util.concurrent.ScheduledFuture<?> scheduleWithFixedDelay(java.lang.Runnable task,
                                                                              java.util.Date startTime,
                                                                              long delay)
        Description copied from interface: TaskScheduler
        Schedule the given Runnable, invoking it at the specified execution time and subsequently with the given delay between the completion of one execution and the start of the next.

        Execution will end once the scheduler shuts down or the returned ScheduledFuture gets cancelled.

        Specified by:
        scheduleWithFixedDelay in interface TaskScheduler
        Parameters:
        task - the Runnable to execute whenever the trigger fires
        startTime - the desired first execution time for the task (if this is in the past, the task will be executed immediately, i.e. as soon as possible)
        delay - the delay between the completion of one execution and the start of the next (in milliseconds)
        Returns:
        a ScheduledFuture representing pending completion of the task
      • scheduleWithFixedDelay

        public java.util.concurrent.ScheduledFuture<?> scheduleWithFixedDelay(java.lang.Runnable task,
                                                                              long delay)
        Description copied from interface: TaskScheduler
        Schedule the given Runnable, starting as soon as possible and invoking it with the given delay between the completion of one execution and the start of the next.

        Execution will end once the scheduler shuts down or the returned ScheduledFuture gets cancelled.

        Specified by:
        scheduleWithFixedDelay in interface TaskScheduler
        Parameters:
        task - the Runnable to execute whenever the trigger fires
        delay - the delay between the completion of one execution and the start of the next (in milliseconds)
        Returns:
        a ScheduledFuture representing pending completion of the task