Spring ThreadPoolTask​​Scheduler 与 ThreadPoolTask​​Executor

Spring ThreadPoolTaskScheduler vs ThreadPoolTaskExecutor

Spring documentation中提到:

ThreadPoolTaskScheduler actually implements Spring's TaskExecutor interface as well, so that a single instance can be used for asynchronous execution as soon as possible as well as scheduled, and potentially recurring, executions.

那么我们希望在 ThreadPoolTaskScheduler 个实例上使用 ThreadPoolTaskExecutor 个实例的场景是什么?

我目前正在使用 Spring XML。我正在创建 ThreadPoolTaskScheduler 的 bean,如下所示:

<task:scheduler id="myScheduler" pool-size="1"/>

ThreadPoolTaskExecutor 实例的 bean 可以创建为

<task:executor id="executor" pool-size="10"/>

你在Spring文档中引用的那句话只是说你可以使用调度程序来执行任务,但这不是它的主要目的。 ThreadPoolTaskExecutor 通过其 corePoolSize, maxPoolSize, keepAliveSeconds and queueCapacity 属性在线程池上提供细粒度配置。 ThreadPoolTaskScheduler 等调度程序不提供此类配置。

因此,在两者之间进行选择会产生以下问题:我是否需要执行或安排执行任务?