org.springframework.integration.scheduling
Class SimpleTaskScheduler

java.lang.Object
  extended by org.springframework.integration.scheduling.AbstractTaskScheduler
      extended by org.springframework.integration.scheduling.SimpleTaskScheduler
All Implemented Interfaces:
org.springframework.beans.factory.DisposableBean, org.springframework.context.Lifecycle, org.springframework.core.task.TaskExecutor, TaskScheduler, org.springframework.scheduling.SchedulingTaskExecutor

public class SimpleTaskScheduler
extends AbstractTaskScheduler
implements org.springframework.beans.factory.DisposableBean

An implementation of TaskScheduler that understands PollingSchedules and delegates to a ScheduledExecutorService instance.

Author:
Mark Fisher

Nested Class Summary
private  class SimpleTaskScheduler.TaskRunner
           
 
Field Summary
private  ErrorHandler errorHandler
           
private  java.util.concurrent.ScheduledExecutorService executor
           
private  java.lang.Object lifecycleMonitor
           
private  org.apache.commons.logging.Log logger
           
private  java.util.Set<java.lang.Runnable> pendingTasks
           
private  boolean running
           
private  java.util.Map<java.lang.Runnable,java.util.concurrent.ScheduledFuture<?>> scheduledTasks
           
private  boolean waitForTasksToCompleteOnShutdown
           
 
Constructor Summary
SimpleTaskScheduler(java.util.concurrent.ScheduledExecutorService executor)
           
 
Method Summary
 boolean cancel(java.lang.Runnable task, boolean mayInterruptIfRunning)
           
 void destroy()
           
 boolean isRunning()
           
 java.util.concurrent.ScheduledFuture<?> schedule(java.lang.Runnable task)
           
 void setErrorHandler(ErrorHandler errorHandler)
           
 void setWaitForTasksToCompleteOnShutdown(boolean waitForTasksToCompleteOnShutdown)
           
 void start()
           
 void stop()
           
 
Methods inherited from class org.springframework.integration.scheduling.AbstractTaskScheduler
execute, prefersShortLivedTasks
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

private final org.apache.commons.logging.Log logger

executor

private final java.util.concurrent.ScheduledExecutorService executor

waitForTasksToCompleteOnShutdown

private volatile boolean waitForTasksToCompleteOnShutdown

errorHandler

private volatile ErrorHandler errorHandler

pendingTasks

private final java.util.Set<java.lang.Runnable> pendingTasks

scheduledTasks

private final java.util.Map<java.lang.Runnable,java.util.concurrent.ScheduledFuture<?>> scheduledTasks

running

private volatile boolean running

lifecycleMonitor

private final java.lang.Object lifecycleMonitor
Constructor Detail

SimpleTaskScheduler

public SimpleTaskScheduler(java.util.concurrent.ScheduledExecutorService executor)
Method Detail

setWaitForTasksToCompleteOnShutdown

public void setWaitForTasksToCompleteOnShutdown(boolean waitForTasksToCompleteOnShutdown)

setErrorHandler

public void setErrorHandler(ErrorHandler errorHandler)
Specified by:
setErrorHandler in interface TaskScheduler

isRunning

public boolean isRunning()
Specified by:
isRunning in interface org.springframework.context.Lifecycle

start

public void start()
Specified by:
start in interface org.springframework.context.Lifecycle

stop

public void stop()
Specified by:
stop in interface org.springframework.context.Lifecycle

destroy

public void destroy()
Specified by:
destroy in interface org.springframework.beans.factory.DisposableBean

schedule

public java.util.concurrent.ScheduledFuture<?> schedule(java.lang.Runnable task)
Specified by:
schedule in interface TaskScheduler
Specified by:
schedule in class AbstractTaskScheduler

cancel

public boolean cancel(java.lang.Runnable task,
                      boolean mayInterruptIfRunning)
Specified by:
cancel in interface TaskScheduler