Optional interface to be implemented by @Configuration classes annotated with @EnableScheduling. Typically used for registering scheduled tasks in a programmatic fashion as opposed to the declarative approach of using the @Scheduled annotation.
Definition of SchedulingConfigurer(Version: spring-framework 6.1.8) package org.springframework.scheduling.annotation;
........
@FunctionalInterface
public interface SchedulingConfigurer {
void configureTasks(ScheduledTaskRegistrar taskRegistrar); 1
}
Useful ScheduledTaskRegistrar methods
Add methods
These instance public methods add (register) tasks with the registrar. They are not immediately scheduled. The actual scheduling happens later, after the container initialization.
void addCronTask(Runnable task, String expression)
void addCronTask(CronTask task)
void addFixedDelayTask(Runnable task, Duration interval)
void addFixedDelayTask(IntervalTask task)
void addFixedRateTask(Runnable task, Duration interval)
void addFixedRateTask(IntervalTask task)
void addOneTimeTask(Runnable task, Duration initialDelay)
void addOneTimeTask(DelayedTask task)
void addTriggerTask(Runnable task, Trigger trigger)
void addTriggerTask(TriggerTask task)
See this tutorial on Trigger.
Schedule methods
These instance public methods schedule the task right away (or on scheduler initialization). They return ScheduledFuture objects that give you control over the scheduled task, specially useful to cancel the tasks.
ScheduledTask scheduleCronTask(CronTask task)
ScheduledTask scheduleFixedRateTask(FixedRateTask task)
ScheduledTask scheduleFixedDelayTask(FixedDelayTask task)
ScheduledTask scheduleOneTimeTask(OneTimeTask task)
ScheduledTask scheduleTriggerTask(TriggerTask task)
Bulk task registration
These build methods register tasks in bulk, they are scheduled after the container initialization.
void setCronTasks(Map<Runnable,String> cronTasks)
void setCronTasksList(List<CronTask> cronTasks)
void setFixedDelayTasks(Map<Runnable,Long> fixedDelayTasks)
void setFixedDelayTasksList(List<IntervalTask> fixedDelayTasks)
void setFixedRateTasks(Map<Runnable,Long> fixedRateTasks)
void setFixedRateTasksList(List<IntervalTask> fixedRateTasks)
void setTriggerTasks(Map<Runnable,Trigger> triggerTasks)
void setTriggerTasksList(List<TriggerTask> triggerTasks)
Setting TaskScheduler
Set custom task scheduler.
void setScheduler(Object scheduler)
void setTaskScheduler(TaskScheduler taskScheduler
|