## org.springframework.scheduling.timer
Class TimerTaskExecutor

    java.lang.Object
      org.springframework.scheduling.timer.TimerTaskExecutor

All Implemented Interfaces:
  DisposableBean, InitializingBean, TaskExecutor, SchedulingTaskExecutor

    public class TimerTaskExecutor

extends Object
implements SchedulingTaskExecutor, InitializingBean, DisposableBean

`TaskExecutor` implementation that uses a single `Timer` for executing all tasks, effectively resulting in serialized asynchronous execution on a single thread.

Since:
  2.0
Author:
  Juergen Hoeller
See Also:
  `Timer`

Field Summary
`protected Log` `logger`

Constructor Summary
`TimerTaskExecutor()` Create a new TimerTaskExecutor that needs to be further configured and initialized.
`TimerTaskExecutor(Timer timer)` Create a new TimerTaskExecutor for the given `Timer`.

Method Summary
`void` `afterPropertiesSet()` Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware).
`protected Timer` `createTimer()` Create a new `Timer` instance.
`void` `destroy()` Cancel the `Timer` on bean factory shutdown, stopping all scheduled tasks.
`void` `execute(Runnable task)` Schedules the given `Runnable` on this executor's `Timer` instance, wrapping it in a `DelegatingTimerTask`.
`boolean` `prefersShortLivedTasks()` This task executor prefers short-lived work units.
`void` `setDelay(int delay)` Set the delay to use for scheduling tasks passed into the `execute` method.
`void` `setTimer(Timer timer)` Set the `Timer` to use for this `TimerTaskExecutor`, for example a shared `Timer` instance defined by a `TimerFactoryBean`.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### logger

    protected final Log logger

Constructor Detail

### TimerTaskExecutor

    public TimerTaskExecutor()

  Create a new TimerTaskExecutor that needs to be further configured and initialized.

  See Also:
    `setTimer(java.util.Timer)`, `afterPropertiesSet()`

### TimerTaskExecutor

    public TimerTaskExecutor(Timer timer)

  Create a new TimerTaskExecutor for the given `Timer`.

  Parameters:
    `timer` - the `Timer` to wrap

Method Detail

### setTimer

    public void setTimer(Timer timer)

  Set the `Timer` to use for this `TimerTaskExecutor`, for example a shared `Timer` instance defined by a `TimerFactoryBean`.

  If not specified, a default internal `Timer` instance will be used.

  Parameters:
    `timer` - the `Timer` to use for this `TimerTaskExecutor`
  See Also:
    `TimerFactoryBean`

### setDelay

    public void setDelay(int delay)

  Set the delay to use for scheduling tasks passed into the `execute` method. Default is 0.

  Parameters:
    `delay` - the delay in milliseconds before the task is to be executed

### afterPropertiesSet

    public void afterPropertiesSet()

  Description copied from interface: `InitializingBean`
  Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware).

  This method allows the bean instance to perform initialization only possible when all bean properties have been set and to throw an exception in the event of misconfiguration.

  Specified by:
    `afterPropertiesSet` in interface `InitializingBean`

### createTimer

    protected Timer createTimer()

  Create a new `Timer` instance. Called by `afterPropertiesSet` if no `Timer` has been specified explicitly.

  The default implementation creates a plain daemon `Timer`. If overridden, subclasses must take care to ensure that a non-null `Timer` is returned from the execution of this method.

  See Also:
    `afterPropertiesSet()`, `Timer.Timer(boolean)`

### execute

    public void execute(Runnable task)

  Schedules the given `Runnable` on this executor's `Timer` instance, wrapping it in a `DelegatingTimerTask`.

  Specified by:
    `execute` in interface `TaskExecutor`
  Parameters:
    `task` - the task to be executed

### prefersShortLivedTasks

    public boolean prefersShortLivedTasks()

  This task executor prefers short-lived work units.

  Specified by:
    `prefersShortLivedTasks` in interface `SchedulingTaskExecutor`
  Returns:
    `true` if this `TaskExecutor` prefers short-lived tasks

### destroy

    public void destroy()

  Cancel the `Timer` on bean factory shutdown, stopping all scheduled tasks.

  Specified by:
    `destroy` in interface `DisposableBean`
  See Also:
    `Timer.cancel()`

Copyright © 2002-2008 The Spring Framework.