spring-framework / org.springframework.scheduling.commonj / TimerManagerTaskScheduler

TimerManagerTaskScheduler

open class TimerManagerTaskScheduler : TimerManagerAccessor, TaskScheduler

Implementation of Spring's TaskScheduler interface, wrapping a CommonJ commonj.timers.TimerManager.

Author
Juergen Hoeller

Author
Mark Fisher

Since
3.0

Constructors

<init>

TimerManagerTaskScheduler()

Implementation of Spring's TaskScheduler interface, wrapping a CommonJ commonj.timers.TimerManager.

Functions

schedule

open fun schedule(task: Runnable, trigger: Trigger): ScheduledFuture<*>
open fun schedule(task: Runnable, startTime: Date): ScheduledFuture<*>

scheduleAtFixedRate

open fun scheduleAtFixedRate(task: Runnable, startTime: Date, period: Long): ScheduledFuture<*>
open fun scheduleAtFixedRate(task: Runnable, period: Long): ScheduledFuture<*>

scheduleWithFixedDelay

open fun scheduleWithFixedDelay(task: Runnable, startTime: Date, delay: Long): ScheduledFuture<*>
open fun scheduleWithFixedDelay(task: Runnable, delay: Long): ScheduledFuture<*>

setErrorHandler

open fun setErrorHandler(errorHandler: ErrorHandler): Unit

Provide an ErrorHandler strategy.

Inherited Functions

afterPropertiesSet

open fun afterPropertiesSet(): Unit

destroy

open fun destroy(): Unit

Stops the underlying TimerManager (if not shared).

isRunning

open fun isRunning(): Boolean

Considers the underlying TimerManager as running if it is neither suspending nor stopping.

setShared

open fun setShared(shared: Boolean): Unit

Specify whether the TimerManager obtained by this FactoryBean is a shared instance ("true") or an independent instance ("false"). The lifecycle of the former is supposed to be managed by the application server, while the lifecycle of the latter is up to the application.

Default is "false", i.e. managing an independent TimerManager instance. This is what the CommonJ specification suggests that application servers are supposed to offer via JNDI lookups, typically declared as a resource-ref of type commonj.timers.TimerManager in web.xml, with res-sharing-scope set to 'Unshareable'.

Switch this flag to "true" if you are obtaining a shared TimerManager, typically through specifying the JNDI location of a TimerManager that has been explicitly declared as 'Shareable'. Note that WebLogic's cluster-aware Job Scheduler is a shared TimerManager too.

The sole difference between this FactoryBean being in shared or non-shared mode is that it will only attempt to suspend / resume / stop the underlying TimerManager in case of an independent (non-shared) instance. This only affects the org.springframework.context.Lifecycle support as well as application context shutdown.

setTimerManager

open fun setTimerManager(timerManager: TimerManager): Unit

Specify the CommonJ TimerManager to delegate to.

Note that the given TimerManager's lifecycle will be managed by this FactoryBean.

Alternatively (and typically), you can specify the JNDI name of the target TimerManager.

setTimerManagerName

open fun setTimerManagerName(timerManagerName: String): Unit

Set the JNDI name of the CommonJ TimerManager.

This can either be a fully qualified JNDI name, or the JNDI name relative to the current environment naming context if "resourceRef" is set to "true".

start

open fun start(): Unit

Resumes the underlying TimerManager (if not shared).

stop

open fun stop(): Unit

Suspends the underlying TimerManager (if not shared).