Spring ThreadPoolTask​​Scheduler vs ThreadPoolTask​​Executor

时间:2015-10-31 16:14:10

标签: spring task scheduled-tasks threadpoolexecutor executor

Spring documentation中提到:

  

ThreadPoolTaskScheduler实际上也实现了Spring的TaskExecutor接口,因此单个实​​例可以尽快用于异步执行,也可以用于计划和可能重复执行。

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

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

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

ThreadPoolTaskExecutor实例的bean可以创建为

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

1 个答案:

答案 0 :(得分:15)

您在Spring文档中引用的句子只是说可以使用调度程序来执行任务,但这不是它的主要目的。 ThreadPoolTaskExecutor通过其corePoolSizemaxPoolSizekeepAliveSecondsqueueCapacity属性在线程池上提供细粒度配置。诸如ThreadPoolTaskScheduler之类的调度程序不提供此类配置。

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