public class

ConcurrentTaskScheduler

extends ConcurrentTaskExecutor
implements TaskScheduler
java.lang.Object
   ↳ org.springframework.scheduling.concurrent.ConcurrentTaskExecutor
     ↳ org.springframework.scheduling.concurrent.ConcurrentTaskScheduler

Class Overview

Adapter that takes a JDK 1.5 java.util.concurrent.ScheduledExecutorService and exposes a Spring TaskScheduler for it. Extends ConcurrentTaskExecutor in order to implement the SchedulingTaskExecutor interface as well.

Note that there is a pre-built ThreadPoolTaskScheduler that allows for defining a JDK 1.5 java.util.concurrent.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.

See Also

Summary

[Expand]
Inherited Constants
From interface org.springframework.core.task.AsyncTaskExecutor
Public Constructors
ConcurrentTaskScheduler()
Create a new ConcurrentTaskScheduler, using a single thread executor as default.
ConcurrentTaskScheduler(ScheduledExecutorService scheduledExecutor)
Create a new ConcurrentTaskScheduler, using the given JDK 1.5 executor as shared delegate.
ConcurrentTaskScheduler(Executor concurrentExecutor, ScheduledExecutorService scheduledExecutor)
Create a new ConcurrentTaskScheduler, using the given JDK 1.5 executors as delegates.
Public Methods
ScheduledFuture schedule(Runnable task, Date startTime)
Schedule the given Runnable, invoking it at the specified execution time.
ScheduledFuture schedule(Runnable task, Trigger trigger)
Schedule the given Runnable, invoking it whenever the trigger indicates a next execution time.
ScheduledFuture scheduleAtFixedRate(Runnable task, long period)
Schedule the given Runnable, starting as soon as possible and invoking it with the given period.
ScheduledFuture scheduleAtFixedRate(Runnable task, Date startTime, long period)
Schedule the given Runnable, invoking it at the specified execution time and subsequently with the given period.
ScheduledFuture scheduleWithFixedDelay(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.
ScheduledFuture scheduleWithFixedDelay(Runnable task, 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.
void setErrorHandler(ErrorHandler errorHandler)
Provide an ErrorHandler strategy.
final void setScheduledExecutor(ScheduledExecutorService scheduledExecutor)
Specify the JDK 1.5 scheduled executor to delegate to.
[Expand]
Inherited Methods
From class org.springframework.scheduling.concurrent.ConcurrentTaskExecutor
From class java.lang.Object
From interface java.util.concurrent.Executor
From interface org.springframework.core.task.AsyncTaskExecutor
From interface org.springframework.core.task.TaskExecutor
From interface org.springframework.scheduling.SchedulingTaskExecutor
From interface org.springframework.scheduling.TaskScheduler

Public Constructors

public ConcurrentTaskScheduler ()

Create a new ConcurrentTaskScheduler, using a single thread executor as default.

public ConcurrentTaskScheduler (ScheduledExecutorService scheduledExecutor)

Create a new ConcurrentTaskScheduler, using the given JDK 1.5 executor as shared delegate.

Parameters
scheduledExecutor the JDK 1.5 scheduled executor to delegate to for SchedulingTaskExecutor as well as TaskScheduler invocations

public ConcurrentTaskScheduler (Executor concurrentExecutor, ScheduledExecutorService scheduledExecutor)

Create a new ConcurrentTaskScheduler, using the given JDK 1.5 executors as delegates.

Parameters
concurrentExecutor the JDK 1.5 concurrent executor to delegate to for SchedulingTaskExecutor invocations
scheduledExecutor the JDK 1.5 scheduled executor to delegate to for TaskScheduler invocations

Public Methods

public ScheduledFuture schedule (Runnable task, Date startTime)

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.

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

public ScheduledFuture schedule (Runnable task, Trigger trigger)

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.

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

public ScheduledFuture scheduleAtFixedRate (Runnable task, long period)

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.

Parameters
task the Runnable to execute whenever the trigger fires
period the interval between successive executions of the task (in milliseconds)
Returns

public ScheduledFuture scheduleAtFixedRate (Runnable task, Date startTime, long period)

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.

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

public ScheduledFuture scheduleWithFixedDelay (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.

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

Parameters
task the Runnable to execute whenever the trigger fires
delay the interval between successive executions of the task (in milliseconds)
Returns

public ScheduledFuture scheduleWithFixedDelay (Runnable task, 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.

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

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

public void setErrorHandler (ErrorHandler errorHandler)

Provide an ErrorHandler strategy.

public final void setScheduledExecutor (ScheduledExecutorService scheduledExecutor)

Specify the JDK 1.5 scheduled executor to delegate to.

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 setConcurrentExecutor(Executor).