Does spring @Scheduled annotated methods runs on different threads?
java, scheduled-tasks, spring
Solution
Spring 4.x
Code below shows the simplest possible way to configure scheduler with java config:
@Configuration
@EnableScheduling
public class SpringConfiguration {
@Bean(destroyMethod = "shutdown")
public Executor taskScheduler() {
return Executors.newScheduledThreadPool(5);
}
...
When more control is desired, a `@Configuration` class may implement `SchedulingConfigurer`.
Spring Boot
In Spring Boot there is a simple property to configure the thread pool size:
spring.task.scheduling.pool.size=5
Problem
I have several methods annotated with `@Scheduled(fixedDelay=10000)`. In the application context, I have this annotation-driven setup: ``` <task:annotation-driven /> ``` The problem is, sometimes some of the method executions get delayed by seconds and even minutes. I'm assuming that even if a method takes a while to finish executing, the other methods would still execute. So I don't understand the delay. Is there a way to maybe lessen or even remove the delay?