Spring 3 Scheduling and Thread Pooling フレームワークを使用しています。さまざまな時間/間隔でさまざまなタスクをスケジュールしたいと考えています。別のタスクが開始される前に、各タスクを完了するまで実行したい。
IE task1 と task2 がある場合: task1 は 10 分ごとに実行され、実行に 1 分かかります。 task2 は 1 日に 1 回実行され、実行に 5 分かかります。
task1 と task2 のタイマーが同時に起動する場合、task1 と task2 をキューに入れ、一度に 1 つのタスクだけをオフにする必要があります。
Spring ThreadPoolTaskExecutor を使用してこれをセットアップできることを知っています。
<task:executor id="executorWithPoolSizeRange"
pool-size="5-10"
queue-capacity="1"/>
ただし、そのエグゼキュータをスケジューラにフックする方法がわかりません。Spring ThreadPoolTaskScheduler を使用する場合、queueSize ではなく poolSize のみを設定できます
<task:scheduler id="scheduler" pool-size="10"/>
Spring エグゼキュータ サービスとスケジューラ サービスを一緒に使用して目標を達成する方法を知っている人はいますか?