This Spring Boot application demos Spring's @Scheduled
annotation combined with Spring Boot
externalized configuration processing.
Scheduling support is enabled with the @EnableScheduling
annotation placed on any
@Configuration
or composing annotation such as @SpringBootApplication
:
@SpringBootApplication
@EnableScheduling
public class DemoSpringScheduledApplication {
With the following property configuration in application.yml
:
spring-scheduled:
# rate can be a numerical milliseconds or ISO-8601 duration. The shorter form like 5s
# is not supported by fixedRateString parsing.
rate: PT5S
The following doSomething
method will get invoked every 5 seconds
@Scheduled(fixedRateString = "${spring-scheduled.rate}")
public void doSomething() {
log.info("Running periodic operation at {}", new Date());
}