2015-10-31 4 views
6

Он упоминается в Spring documentation, что:Spring ThreadPoolTaskScheduler против ThreadPoolTaskExecutor

ThreadPoolTaskScheduler фактически реализует интерфейс Spring в TaskExecutor, а также, так что один экземпляр может быть использован для асинхронного выполнения как можно скорее, а также в соответствии с графиком, и потенциально повторяющиеся, казни.

Так, которые являются сценарии, в которых мы хотели бы использовать ThreadPoolTaskExecutor экземпляр над ThreadPoolTaskScheduler например?

В настоящее время я использую Spring XML. Я создание компонента ThreadPoolTaskScheduler следующим образом:

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

в то время как боб ThreadPoolTaskExecutor, например, может быть создан как

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

ответ

7
  • ThreadPoolTaskExecutor является специализированным классом для выполнения задач.
  • ThreadPoolTaskScheduler - это специализированный класс для задач планирования.

Приговор вы процитировали в документации Spring только о том, что вы можете использовать планировщик для выполнения задач, но это не является его основной целью. A ThreadPoolTaskExecutor обеспечивает мелкозернистую конфигурацию через пул потоков через свои corePoolSize, maxPoolSize, keepAliveSeconds и queueCapacity. Планировщик, такой как ThreadPoolTaskScheduler, не предоставляет такую ​​конфигурацию.

Таким образом, выбор между двумя способами сводится к следующему вопросу: нужно ли выполнять или планировать выполнение задач?

+0

Спасибо, это действительно помогает мне понять, что Альтос между Исполнителем и Планировщиком. –