在 Spring documentation 中提到那:
ThreadPoolTaskScheduler
actually implements Spring'sTaskExecutor
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.
那么我们希望在哪些场景中使用 ThreadPoolTaskExecutor
实例而不是 ThreadPoolTaskScheduler
实例?
我目前正在使用 Spring XML。我正在创建 ThreadPoolTaskScheduler
的 bean,如下所示:
<task:scheduler id="myScheduler" pool-size="1"/>
ThreadPoolTaskExecutor
实例的bean可以被创建为
<task:executor id="executor" pool-size="10"/>
最佳答案
-
ThreadPoolTaskExecutor
是一个专门用于执行任务的类。 -
ThreadPoolTaskScheduler
是一个专门用于调度任务的类。
您在 Spring 文档中引用的那句话只是说您可以使用调度程序来执行任务,但这不是它的主要目的。 ThreadPoolTaskExecutor
通过其corePoolSize
提供线程池的细粒度配置。 , maxPoolSize
, keepAliveSeconds
和 queueCapacity
特性。 ThreadPoolTaskScheduler
等调度程序不提供此类配置。
因此,在两者之间进行选择会产生以下问题:我是否需要执行或计划执行任务?
关于Spring ThreadPoolTaskScheduler vs ThreadPoolTaskExecutor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33453722/