|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.scheduling.concurrent.ConcurrentTaskExecutor org.springframework.scheduling.concurrent.ConcurrentTaskScheduler
public class ConcurrentTaskScheduler
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 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
,
ThreadPoolTaskScheduler
Field Summary | |
---|---|
private ErrorHandler |
errorHandler
|
private java.util.concurrent.ScheduledExecutorService |
scheduledExecutor
|
Fields inherited from interface org.springframework.core.task.AsyncTaskExecutor |
---|
TIMEOUT_IMMEDIATE, TIMEOUT_INDEFINITE |
Constructor Summary | |
---|---|
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 JDK 1.5 executors as delegates. |
|
ConcurrentTaskScheduler(java.util.concurrent.ScheduledExecutorService scheduledExecutor)
Create a new ConcurrentTaskScheduler, using the given JDK 1.5 executor as shared delegate. |
Method Summary | |
---|---|
private java.lang.Runnable |
errorHandlingTask(java.lang.Runnable task,
boolean isRepeatingTask)
|
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 ErrorHandler strategy. |
void |
setScheduledExecutor(java.util.concurrent.ScheduledExecutorService scheduledExecutor)
Specify the JDK 1.5 scheduled executor to delegate to. |
Methods inherited from class org.springframework.scheduling.concurrent.ConcurrentTaskExecutor |
---|
execute, execute, getConcurrentExecutor, prefersShortLivedTasks, setConcurrentExecutor, submit, submit |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private volatile java.util.concurrent.ScheduledExecutorService scheduledExecutor
private volatile ErrorHandler errorHandler
Constructor Detail |
---|
public ConcurrentTaskScheduler()
Executors.newSingleThreadScheduledExecutor()
public ConcurrentTaskScheduler(java.util.concurrent.ScheduledExecutorService scheduledExecutor)
scheduledExecutor
- the JDK 1.5 scheduled executor to delegate to
for SchedulingTaskExecutor
as well
as TaskScheduler
invocationspublic ConcurrentTaskScheduler(java.util.concurrent.Executor concurrentExecutor, java.util.concurrent.ScheduledExecutorService scheduledExecutor)
concurrentExecutor
- the JDK 1.5 concurrent executor to delegate to
for SchedulingTaskExecutor
invocationsscheduledExecutor
- the JDK 1.5 scheduled executor to delegate to
for TaskScheduler
invocationsMethod Detail |
---|
public final void setScheduledExecutor(java.util.concurrent.ScheduledExecutorService scheduledExecutor)
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)
.
ConcurrentTaskExecutor.setConcurrentExecutor(java.util.concurrent.Executor)
public void setErrorHandler(ErrorHandler errorHandler)
ErrorHandler
strategy.
public java.util.concurrent.ScheduledFuture schedule(java.lang.Runnable task, Trigger trigger)
TaskScheduler
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.
schedule
in interface TaskScheduler
task
- the Runnable to execute whenever the trigger firestrigger
- an implementation of the Trigger
interface,
e.g. a CronTrigger
object
wrapping a cron expression
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)
)CronTrigger
public java.util.concurrent.ScheduledFuture schedule(java.lang.Runnable task, java.util.Date startTime)
TaskScheduler
Runnable
, invoking it at the specified execution time.
Execution will end once the scheduler shuts down or the returned
ScheduledFuture
gets cancelled.
schedule
in interface TaskScheduler
task
- 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)
TaskScheduler
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.
scheduleAtFixedRate
in interface TaskScheduler
task
- 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)
TaskScheduler
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.
scheduleAtFixedRate
in interface TaskScheduler
task
- 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)
TaskScheduler
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.
scheduleWithFixedDelay
in interface TaskScheduler
task
- 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)
TaskScheduler
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.
scheduleWithFixedDelay
in interface TaskScheduler
task
- the Runnable to execute whenever the trigger firesdelay
- the interval between successive executions of the task (in milliseconds)
ScheduledFuture
representing pending completion of the taskprivate java.lang.Runnable errorHandlingTask(java.lang.Runnable task, boolean isRepeatingTask)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |