public class ConcurrentTaskScheduler extends ConcurrentTaskExecutor implements TaskScheduler
java.util.concurrent.ScheduledExecutorService and
 exposes a Spring TaskScheduler for it.
 Extends ConcurrentTaskExecutor in order to implement the
 SchedulingTaskExecutor interface as well.
 Autodetects a JSR-236 ManagedScheduledExecutorService
 in order to use it for trigger-based scheduling if possible, instead of Spring's
 local trigger management which ends up delegating to regular delay-based scheduling
 against the java.util.concurrent.ScheduledExecutorService API. For JSR-236 style
 lookup in a Java EE 7 environment, consider using DefaultManagedTaskScheduler.
 
Note that there is a pre-built ThreadPoolTaskScheduler that allows for
 defining a ScheduledThreadPoolExecutor in bean style,
 exposing it as a Spring TaskScheduler directly.
 This is a convenient alternative to a raw ScheduledThreadPoolExecutor definition with
 a separate definition of the present adapter class.
ScheduledExecutorService, 
ScheduledThreadPoolExecutor, 
Executors, 
DefaultManagedTaskScheduler, 
ThreadPoolTaskSchedulerConcurrentTaskExecutor.ManagedTaskBuilderTIMEOUT_IMMEDIATE, TIMEOUT_INDEFINITE| Constructor and Description | 
|---|
| ConcurrentTaskScheduler()Create a new ConcurrentTaskScheduler,
 using a single thread executor as default. | 
| ConcurrentTaskScheduler(java.util.concurrent.Executor concurrentExecutor,
                       java.util.concurrent.ScheduledExecutorService scheduledExecutor)Create a new ConcurrentTaskScheduler, using the given  ExecutorandScheduledExecutorServiceas delegates. | 
| ConcurrentTaskScheduler(java.util.concurrent.ScheduledExecutorService scheduledExecutor)Create a new ConcurrentTaskScheduler, using the given
  ScheduledExecutorServiceas shared delegate. | 
| Modifier and Type | Method and Description | 
|---|---|
| java.util.concurrent.ScheduledFuture<?> | schedule(java.lang.Runnable task,
        java.util.Date startTime)Schedule the given  Runnable, invoking it at the specified execution time. | 
| java.util.concurrent.ScheduledFuture<?> | schedule(java.lang.Runnable task,
        Trigger trigger)Schedule the given  Runnable, invoking it whenever the trigger
 indicates a next execution time. | 
| java.util.concurrent.ScheduledFuture<?> | scheduleAtFixedRate(java.lang.Runnable task,
                   java.util.Date startTime,
                   long period)Schedule the given  Runnable, invoking it at the specified execution time
 and subsequently with the given period. | 
| java.util.concurrent.ScheduledFuture<?> | scheduleAtFixedRate(java.lang.Runnable task,
                   long period)Schedule the given  Runnable, starting as soon as possible and
 invoking it with the given period. | 
| java.util.concurrent.ScheduledFuture<?> | scheduleWithFixedDelay(java.lang.Runnable task,
                      java.util.Date startTime,
                      long delay)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. | 
| java.util.concurrent.ScheduledFuture<?> | scheduleWithFixedDelay(java.lang.Runnable task,
                      long delay)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. | 
| void | setErrorHandler(ErrorHandler errorHandler)Provide an  ErrorHandlerstrategy. | 
| void | setScheduledExecutor(java.util.concurrent.ScheduledExecutorService scheduledExecutor)Specify the  ScheduledExecutorServiceto delegate to. | 
execute, execute, getConcurrentExecutor, prefersShortLivedTasks, setConcurrentExecutor, setTaskDecorator, submit, submit, submitListenable, submitListenableclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitschedule, scheduleAtFixedRate, scheduleAtFixedRate, scheduleWithFixedDelay, scheduleWithFixedDelaypublic ConcurrentTaskScheduler()
Executors.newSingleThreadScheduledExecutor()public ConcurrentTaskScheduler(java.util.concurrent.ScheduledExecutorService scheduledExecutor)
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.
scheduledExecutor - the ScheduledExecutorService
 to delegate to for SchedulingTaskExecutor
 as well as TaskScheduler invocationspublic ConcurrentTaskScheduler(java.util.concurrent.Executor concurrentExecutor,
                               java.util.concurrent.ScheduledExecutorService scheduledExecutor)
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.
concurrentExecutor - the Executor to delegate to
 for SchedulingTaskExecutor invocationsscheduledExecutor - the ScheduledExecutorService
 to delegate to for TaskScheduler invocationspublic void setScheduledExecutor(@Nullable java.util.concurrent.ScheduledExecutorService scheduledExecutor)
ScheduledExecutorService to delegate to.
 Autodetects a JSR-236 ManagedScheduledExecutorService
 in order to use it for trigger-based scheduling if possible,
 instead of Spring's local trigger management.
 
Note: This will only apply to TaskScheduler invocations.
 If you want the given executor to apply to
 SchedulingTaskExecutor invocations
 as well, pass the same executor reference to ConcurrentTaskExecutor.setConcurrentExecutor(java.util.concurrent.Executor).
public void setErrorHandler(ErrorHandler errorHandler)
ErrorHandler strategy.@Nullable public java.util.concurrent.ScheduledFuture<?> schedule(java.lang.Runnable task, Trigger trigger)
TaskSchedulerRunnable, invoking it whenever the trigger
 indicates a next execution time.
 Execution will end once the scheduler shuts down or the returned
 ScheduledFuture gets cancelled.
schedule in interface TaskSchedulertask - the Runnable to execute whenever the trigger firestrigger - an implementation of the Trigger interface,
 e.g. a CronTrigger object
 wrapping a cron expressionScheduledFuture 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))CronTriggerpublic java.util.concurrent.ScheduledFuture<?> schedule(java.lang.Runnable task,
                                                        java.util.Date startTime)
TaskSchedulerRunnable, invoking it at the specified execution time.
 Execution will end once the scheduler shuts down or the returned
 ScheduledFuture gets cancelled.
schedule in interface TaskSchedulertask - the Runnable to execute whenever the trigger firesstartTime - 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)ScheduledFuture representing pending completion of the taskpublic java.util.concurrent.ScheduledFuture<?> scheduleAtFixedRate(java.lang.Runnable task,
                                                                   java.util.Date startTime,
                                                                   long period)
TaskSchedulerRunnable, 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.
scheduleAtFixedRate in interface TaskSchedulertask - the Runnable to execute whenever the trigger firesstartTime - 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)ScheduledFuture representing pending completion of the taskpublic java.util.concurrent.ScheduledFuture<?> scheduleAtFixedRate(java.lang.Runnable task,
                                                                   long period)
TaskSchedulerRunnable, 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.
scheduleAtFixedRate in interface TaskSchedulertask - the Runnable to execute whenever the trigger firesperiod - the interval between successive executions of the task (in milliseconds)ScheduledFuture representing pending completion of the taskpublic java.util.concurrent.ScheduledFuture<?> scheduleWithFixedDelay(java.lang.Runnable task,
                                                                      java.util.Date startTime,
                                                                      long delay)
TaskSchedulerRunnable, 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.
scheduleWithFixedDelay in interface TaskSchedulertask - the Runnable to execute whenever the trigger firesstartTime - 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)ScheduledFuture representing pending completion of the taskpublic java.util.concurrent.ScheduledFuture<?> scheduleWithFixedDelay(java.lang.Runnable task,
                                                                      long delay)
TaskSchedulerRunnable, 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.
scheduleWithFixedDelay in interface TaskSchedulertask - the Runnable to execute whenever the trigger firesdelay - the delay between the completion of one execution and the start of the next
 (in milliseconds)ScheduledFuture representing pending completion of the task