春のドキュメント に記載されています:
ThreadPoolTaskScheduler
は実際にはSpringのTaskExecutor
インターフェースも実装しているため、単一のインスタンスをできるだけ早く非同期実行に使用できるだけでなく、スケジュールされた、場合によっては繰り返し実行される可能性もあります。
では、ThreadPoolTaskExecutor
インスタンスではなくThreadPoolTaskScheduler
インスタンスを使用するシナリオはどれですか?
現在SpringXMLを使用しています。次のようにThreadPoolTaskScheduler
のBeanを作成しています。
<task:scheduler id="myScheduler" pool-size="1"/>
一方、ThreadPoolTaskExecutor
インスタンスのBeanは次のように作成できます。
<task:executor id="executor" pool-size="10"/>
ThreadPoolTaskExecutor
は、タスクを実行するための特殊なクラスです。ThreadPoolTaskScheduler
は、タスクをスケジュールするための特殊なクラスです。Springのドキュメントで引用した文は、canがスケジューラーを使用してタスクを実行できることを示しているだけですが、それが主な目的ではありません。 ThreadPoolTaskExecutor
は、 corePoolSize
、 maxPoolSize
、 ( keepAliveSeconds
および queueCapacity
プロパティ。 ThreadPoolTaskScheduler
などのスケジューラーはそのような構成を提供しません。
そのため、2つから選択すると、次の質問が出てきます。タスクを実行または実行するようにスケジュールする必要がありますか?