Пружинный ThreadPoolTaskScheduler vs ThreadPoolTaskExecutor



В весенней документации упоминается, что:




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




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



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



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


В то время как Боб экземпляра ThreadPoolTaskExecutor может быть создан как



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

1 ответ:

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

Comments

    Ничего не найдено.