It is mentioned in the Spring documentation that:
ThreadPoolTaskScheduler
actually implements Spring\'sTaskExecutor
interface a
The sentence you quoted in the Spring documentation is only saying that you can use a scheduler to execute tasks, but that it is not its main purpose. A ThreadPoolTaskExecutor
provides fine-grained configuration over the thread pool through its corePoolSize, maxPoolSize, keepAliveSeconds and queueCapacity properties. A scheduler such as ThreadPoolTaskScheduler
does not provide such configuration.
As such, choosing between the two comes down the following question: do I need to execute or schedule execution of tasks?