Пружинный ThreadPoolTaskScheduler vs ThreadPoolTaskExecutor
В весенней документации упоминается, что:
ThreadPoolTaskSchedulerфактически реализует интерфейс SpringTaskExecutor, так что один экземпляр может быть использован для асинхронного выполнения как можно скорее, а также запланированных и потенциально повторяющихся исполнений.
Итак, в каких сценариях мы хотели бы использовать экземпляр ThreadPoolTaskExecutor над экземпляром ThreadPoolTaskScheduler?
Я использую в настоящее время using Spring XML. Я создаю Боб ThreadPoolTaskScheduler как образом:
<task:scheduler id="myScheduler" pool-size="1"/>
В то время как Боб экземпляра ThreadPoolTaskExecutor может быть создан как
<task:executor id="executor" pool-size="10"/>
1 ответ:
Предложение, которое вы процитировали в весенней документации, говорит только о том, что вы можете использовать планировщик для выполнения задач, но это не является его основной целью. A
ThreadPoolTaskExecutorявляется специализированным классом для выполнения задач.ThreadPoolTaskSchedulerэто специализированный класс для планирования задач.ThreadPoolTaskExecutorобеспечивает мелкозернистую конфигурацию над пулом потоков через егоcorePoolSize,maxPoolSize,keepAliveSecondsи ещеqueueCapacityсвойства. Планировщик, такой какThreadPoolTaskScheduler, не обеспечивает такой конфигурации. Таким образом, выбор между ними сводится к следующему вопросу: нужно ли мне выполнять или планировать выполнение задач?
Comments