Class TaskSchedulerRouter
java.lang.Object
org.springframework.scheduling.config.TaskSchedulerRouter
- All Implemented Interfaces:
- Aware,- BeanFactoryAware,- BeanNameAware,- DisposableBean,- TaskScheduler
public class TaskSchedulerRouter
extends Object
implements TaskScheduler, BeanNameAware, BeanFactoryAware, DisposableBean
A routing implementation of the 
TaskScheduler interface,
 delegating to a target scheduler based on an identified qualifier
 or using a default scheduler otherwise.- Since:
- 6.1
- Author:
- Juergen Hoeller
- See Also:
- 
Field SummaryFieldsModifier and TypeFieldDescriptionstatic final StringThe default name of theTaskSchedulerbean to pick up: "taskScheduler".protected static final Log
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionvoiddestroy()Destroy the local default executor, if any.protected TaskSchedulerprotected TaskSchedulerdetermineQualifiedScheduler(String qualifier) protected StringdetermineQualifier(Runnable task) protected TaskSchedulerSchedule the givenRunnable, invoking it at the specified execution time.Schedule the givenRunnable, invoking it whenever the trigger indicates a next execution time.scheduleAtFixedRate(Runnable task, Duration period) Schedule the givenRunnable, starting as soon as possible and invoking it with the given period.scheduleAtFixedRate(Runnable task, Instant startTime, Duration period) Schedule the givenRunnable, invoking it at the specified execution time and subsequently with the given period.scheduleWithFixedDelay(Runnable task, Duration delay) Schedule the givenRunnable, starting as soon as possible and invoking it with the given delay between the completion of one execution and the start of the next.scheduleWithFixedDelay(Runnable task, Instant startTime, Duration delay) Schedule the givenRunnable, 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.voidsetBeanFactory(BeanFactory beanFactory) The bean factory for scheduler lookups.voidsetBeanName(String name) The bean name for this router, or the bean name of the containing bean if the router instance is internally held.Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.scheduling.TaskSchedulergetClock, schedule, scheduleAtFixedRate, scheduleAtFixedRate, scheduleWithFixedDelay, scheduleWithFixedDelay
- 
Field Details- 
DEFAULT_TASK_SCHEDULER_BEAN_NAMEThe default name of theTaskSchedulerbean to pick up: "taskScheduler".Note that the initial lookup happens by type; this is just the fallback in case of multiple scheduler beans found in the context. - See Also:
 
- 
logger
 
- 
- 
Constructor Details- 
TaskSchedulerRouterpublic TaskSchedulerRouter()
 
- 
- 
Method Details- 
setBeanNameThe bean name for this router, or the bean name of the containing bean if the router instance is internally held.- Specified by:
- setBeanNamein interface- BeanNameAware
- Parameters:
- name- the name of the bean in the factory. Note that this name is the actual bean name used in the factory, which may differ from the originally specified name: in particular for inner bean names, the actual bean name might have been made unique through appending "#..." suffixes. Use the- BeanFactoryUtils.originalBeanName(String)method to extract the original bean name (without suffix), if desired.
 
- 
setBeanFactoryThe bean factory for scheduler lookups.- Specified by:
- setBeanFactoryin interface- BeanFactoryAware
- Parameters:
- beanFactory- owning BeanFactory (never- null). The bean can immediately call methods on the factory.
- See Also:
 
- 
scheduleDescription copied from interface:TaskSchedulerSchedule the givenRunnable, invoking it whenever the trigger indicates a next execution time.Execution will end once the scheduler shuts down or the returned ScheduledFuturegets cancelled.- Specified by:
- schedulein interface- TaskScheduler
- Parameters:
- task- the Runnable to execute whenever the trigger fires
- trigger- an implementation of the- Triggerinterface, e.g. a- CronTriggerobject wrapping a cron expression
- Returns:
- a ScheduledFuturerepresenting pending execution of the task, ornullif the given Trigger object never fires (i.e. returnsnullfromTrigger.nextExecution(org.springframework.scheduling.TriggerContext))
- See Also:
 
- 
scheduleDescription copied from interface:TaskSchedulerSchedule the givenRunnable, invoking it at the specified execution time.Execution will end once the scheduler shuts down or the returned ScheduledFuturegets cancelled.- Specified by:
- schedulein interface- TaskScheduler
- 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:
- a ScheduledFuturerepresenting pending execution of the task
 
- 
scheduleAtFixedRateDescription copied from interface:TaskSchedulerSchedule the givenRunnable, invoking it at the specified execution time and subsequently with the given period.Execution will end once the scheduler shuts down or the returned ScheduledFuturegets cancelled.- Specified by:
- scheduleAtFixedRatein interface- TaskScheduler
- 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
- Returns:
- a ScheduledFuturerepresenting pending execution of the task
 
- 
scheduleAtFixedRateDescription copied from interface:TaskSchedulerSchedule the givenRunnable, starting as soon as possible and invoking it with the given period.Execution will end once the scheduler shuts down or the returned ScheduledFuturegets cancelled.- Specified by:
- scheduleAtFixedRatein interface- TaskScheduler
- Parameters:
- task- the Runnable to execute whenever the trigger fires
- period- the interval between successive executions of the task
- Returns:
- a ScheduledFuturerepresenting pending execution of the task
 
- 
scheduleWithFixedDelayDescription copied from interface:TaskSchedulerSchedule the givenRunnable, 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 ScheduledFuturegets cancelled.- Specified by:
- scheduleWithFixedDelayin interface- TaskScheduler
- 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
- Returns:
- a ScheduledFuturerepresenting pending execution of the task
 
- 
scheduleWithFixedDelayDescription copied from interface:TaskSchedulerSchedule the givenRunnable, 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 ScheduledFuturegets cancelled.- Specified by:
- scheduleWithFixedDelayin interface- TaskScheduler
- Parameters:
- task- the Runnable to execute whenever the trigger fires
- delay- the delay between the completion of one execution and the start of the next
- Returns:
- a ScheduledFuturerepresenting pending execution of the task
 
- 
determineTargetScheduler
- 
determineQualifier
- 
determineQualifiedScheduler
- 
determineDefaultScheduler
- 
destroypublic void destroy()Destroy the local default executor, if any.- Specified by:
- destroyin interface- DisposableBean
 
 
-